关键术语:

数据帧:数据链路层的协议数据单元,来自于网际层的IP级别的数据报以预定义的格式封装为数据帧。

子网:IP地址是以网络号和主机号来表示网络上的主机的,只有在一个网络号下的计算机之间才能“直接”互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并不十分灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet)。

网络适配器:也称网卡,它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号。

传输介质:传输介质是通信网络中发送方和接收方之间的物理通路。常用的传输介质可分为有线(双绞线、同轴电缆和光纤)和无线两类。

布线类型:网络所使用的线缆类型对其他设计会有一定影响。比如适配器传递的比特流的电子特性。

前导码:表示帧起始的一系列比特。

目标地址:接收帧的网络适配器物理地址。

源地址:发送帧的网络适配器的物理地址。

长度:表示数据段的长度。

数据:帧中传输的数据。

帧校验序列:发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧中,接收方重新计算CRC,与FCS字段的值比较,判断数据是否丢失或改变。


先来一个概述,你首先得要明白:TCP/IP协议栈的设计保证了与硬件交互相关的细节都发生网络访问层,即应用层,传输层,网际层不必关心硬件设计的问题,使得TCP/IP能够工作于多种不同的传输介质。

为了设计网络访问层的软件组件,开发人员必须假定物理网络具有特定的性质,因此,网络访问层的软件必须伴随特定的硬件设计。

TCP/IP协议栈的最底层是网络访问层(也叫网络接入层,链路层等),它对应着OSI的物理层和数据链路层。

OSI的物理层:在发送端,物理层负责把数据帧转换为适合于传输介质的比特流。

在接收端,物理层会把这些脉冲重新组合为数据帧。

OSI的数据链路层有两个独立的任务:

 介质访问控制(MAC):提供与网络适配器(也称网卡)连接的接口。

逻辑链路控制(LLC):对子网上传递的帧进行错误检查,并且管理子网上通信设备之间的链路。

注意:NDIS和ODI

网络驱动程序接口规范(NDIS)和开放数据链路接口规范(ODI)目的在于让单个协议栈(如TCP/IP)使用多个网络适配器,并让单个网络适配器使用多个上层协议

网络访问层主要是为物理网络准备数据所必需的服务和功能:

  • 与计算机网络适配器的连接。
  • 根据合适的访问方式调整数据的传输。
  • 把数据转化为电子流或模拟脉冲的形式,以在传输介质上进行传输。
  • 对接收到的数据进行错误的检查。
  • 给发送的数据添加错误检查信息,从而让接收端计算机能够对数据进行错误检查。

介绍网络访问层,也少不了要介绍网络体系。网络体系(如以太网)具有一系列的规范来管理介质访问,物理寻址,计算机与传输介质的交互。在决定网络体系时,实际上是在决定如何设计网络访问层。

网络访问层包含了

IEEE 802.3(以太网):基于线缆的网络

IEEE 802.11(无线网络) :无线网络技术

IEEE 802.16(WiMax) :用于移动通信长距离无线连接技术

点到点协议(PPP):Modem通过电话线进行连接的技术

以及其他的网络体系。

由于网络访问层封装了传输介质的细节,因此协议栈的上层则可以独立于硬件进行操作。

物理寻址:

网络访问层需要把逻辑IP地址(通过协议软件来配置)与网络适配器的固定物理地址(即独一无二的MAC地址)相关联。TCP/IP使用地址解析协议(ARP)和逆向地址解析协议(RARP)为IP地址,MAC地址建立了一个对应关系。

PS:逻辑IP地址只存在软件之中。

以太网

在早期的以太网上,全部计算机共享一个传输介质。所以以太网使用了载波侦听多路访问/冲突检测(CSMA/CD)的方法来判断计算机何时可以把数据发送到访问介质。

CSMA:CSMA会监听传输介质的状态,若传输介质空闲,则尝试发送数据。

CD:两台计算机同时尝试发送数据时产生冲突时,计算机会停止发送,然后等待一个随机时间,再次尝试发送。这就是CD。

但上述以太网在非常多计算机的情况下会由于冲突的增多影响性能。所以在现代的以太网中,计算机通常连接到一个中央网络设备(比如交换机)中,交换机会对流量进行管理,从而减少冲突的产生。

在以太网中。网络层主要把网际层的数据报转换成能够通过网络适配器硬件进行传输的形式,它会执行以下操作:

  • 把网际层的数据分解成较小的数据块,以符合以太网帧数据段的要求。
  • 将数据块打包成帧。帧里面包含着以太网网络适配器处理帧所需要的。
  • 将数据帧传递给对应于OSI物理层的底层组件,后者把帧转换为比特流,并且通过传输介质发送出去。

以太网网络适配器会接收到这些帧,并检查目标地址是否与网络适配器的地址相匹配,若能匹配,网络适配器则会处理接收到的帧。

802.3的以太网帧所包含的内容:

前导码

(总共8字节,包括帧起始字符1字节)

帧起始字符

目的地址

(6字节)

源地址

(6字     节)

类型/长度

(2字    节)

数据

(46-1500字节)

帧校验序列

(4字节)

TCP/IP入门笔记及理解 ---网络访问层相关推荐

  1. TCP/IP学习笔记-如何理解

    任何技术的掌握都需要做到应用技能的熟练掌握,比如让你写一个实现亮灯的程序,你本能的知道加载头文件,写main函数,这就是熟练掌握的应用技能,让一个刚学C的人,肯定就会为为什么家在头文件,为什么要写ma ...

  2. 【TCP/IP学习笔记1】 C语言讲解

    TCP/IP学习笔记(一) 一. TCP/IP结构:      TCP/IP是一个四层协议,结构如下:      1.应用层:各种应用程序和协议,如Http.FTP等.      2.传输层:TCP和 ...

  3. 《图解TCP/IP》笔记

    <图解TCP/IP>笔记 <图解TCP/IP>笔记 网络基础知识 OSI七层协议 传输方式的分类 TCP/IP基础知识 TCP/IP的标准化 TCP/IP的分层模型 数据链路 ...

  4. TCP/IP学习笔记:TCP/IP协议介绍

    TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础.TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.2 ...

  5. 图解TCP/IP读书笔记(一)

    图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...

  6. TCP/IP学习笔记(一)(转载)

    一.TCP/IP结构:      TCP/IP是一个四层协议,结构如下:      1.应用层:各种应用程序和协议,如Http.FTP等.      2.传输层:TCP和UDP      TCP提供一 ...

  7. TCP / IP学习笔记(9)-dns域名系统

    TCP / IP学习笔记(9)-dns域名系统 前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要 ...

  8. TCP/IP协议族在异构网络互联中的作用

    TCP/IP协议族由应用层 .传输层.网络层.数据链路层和物理层构成,每一层的功能由一个或多个协议实现 TCP/IP协议族模型各层所处网络和用到的协议: 物理层&数据链路层:ARPANET . ...

  9. TCP/IP入门详解--业内最佳

    文章目录 什么是协议 什么是协议簇 什么是协议栈 OSI模型和TCP/IP模型及对应协议 OSI七层模型具体作用 TCP/IP四层模型具体作用 数据封装过程 以太网帧 IP帧 TCP 帧 三次握手 四 ...

最新文章

  1. ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口
  2. BZOJ2809-左偏树合并
  3. android 设备连接,Android安卓设备连接Mac的方法
  4. 直觉模糊有计算机知识嘛,多源直觉模糊信息系统的知识获取方法
  5. 李宏毅机器学习homework0
  6. ecshop源码教程第1季
  7. 漂亮有创意的思维导图模板下载教程,教你思维导图怎么画
  8. 使用NetworkInterface类获得网络接口信息
  9. Kibana:为 Dashboard 创建链接 drilldown - 7.11 版本
  10. 光波传输的角谱理论【理论,实例及matlab代码】
  11. 干货:饿了么交易系统的重构和实战
  12. python实现基于KNN算法的手写数字识别系统 非常详细!!!!
  13. IPFS和梅克尔森林
  14. vue3使用less,scoped后发现:deep不生效
  15. 去除字符串中所有的空格
  16. kali系统渗透window实现屏幕监控
  17. 美通企业日报 | 牛文文称明年创业要弯腰干脏活累活;高校百英里接力赛北大清华同济前三...
  18. 聊城大学计算机应用基础,聊城大学试题计算机应用基础试题.doc
  19. C语言学习第7天(错误处理、递归、内存管理)默认熟悉数据结构和java基础
  20. 微软面试经历和相关思考总结

热门文章

  1. php高强度精密涂覆钢管,双面涂塑钢管需求和发展 矿用涂塑复合钢管使用常识...
  2. Linux:进程地址空间管理(图文详解总结)
  3. 基于Django的个人博客系统开发
  4. SharePoint Framework开发基础教程
  5. Taffy DB : A JavaScript database for your browser
  6. python文本字符分析编写程序接收字符串_Python程序接受包含所有元音的字符串
  7. 2017第十五届烟台国际装备制造业博览会会刊(参展商名录)
  8. 新闻管理系统页面代码 php,PHP实战 新闻管理系统 使用到了bootst_php
  9. 2020第二届网鼎杯 青龙组部分writeup
  10. 【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer