美文网首页tcp
《TCP/IP协议族(第4版)》读书笔记一

《TCP/IP协议族(第4版)》读书笔记一

作者: 顾慎为 | 来源:发表于2015-10-30 23:32 被阅读321次

    1 概述

    名词
    ISP(Internet Service Provider)互联网服务提供商。
    TCP(Transmission Control Protocol)。
    IP(Internet Protocol)。

    协议:“规则”同义词。
    标准:一致同意的规则。
    RFC(Request for Comment)。因特网草案是正在加工的文档,一旦被因特网管理机构推荐,该草案就可以作为RFC发布。

    RFC的需求级别,如果一个RFC被标明是必需的,则它必须被所有的因特网系统实现以达到最低限度的一致性。如IP、ICMP。

    OSI(Open System Interconnection)模型。
    七层协议,由下往上:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

    把会话层和表示层删去,大体上就是TCP/IP协议族的结构了。在TCP/IP中通常认为应用层是OSI最高三层的合并。

    数据的大体流动:从高往低,每层都可以在数据单元的加一个首部,第2层还可以增加尾部。从低往高,就是把附加部分去掉。

    各层功能
    物理层:接口和媒体的物理特性,比特的表示(什么是0,什么是1),数据率(比特数/秒),比特的同步(时钟同步),线路配置,物理拓扑,传输方式(单双工)。

    数据链路层:组帧(数据链路层的数据单元称为帧frame),物理地址(指明帧的发送方和接收方,两者是直连的),流量控制,差错控制(加尾部),接入控制。

    网络层:逻辑地址(IP地址),路由选择。

    传输层:服务点编址(确定到进程,即端口地址),分段与重装,链接控制(无连接和面向连接),流量控制,差错控制。后两个和数据链路层相比不是单条链路上的,而是端到端的。

    会话层:对话控制,同步。

    表示层:转换,加密,压缩。

    应用层:网络虚拟终端,文件传送、存取和管理,邮件服务,名录服务。
    ......

    TCP/IP协议族的分层
    物理层:TCP/IP没有定义任何特定的协议。单位是bit。是点到点的连接。若一个结点和n条链路相连,则需要n个物理层协议,因为一条链路一个协议,这些链路可能使用不同协议。从A发信息到B,过程是一段一段的。

    IMG_1358.JPG

    数据链路层:TCP/IP没有定义任何特定的协议。单位是frame,附加首部,有时还要加尾部。首部中,最主要是包含frame的源地址和目的地址。是点到点的链接。依然多链路,多协议。从A发信息到B,过程是一段一段的。帧frame的内容可能还不相同。

    IMG_1359.JPG

    网络层:IP协议。单位是数据报datagram。不同的datagram可以走不同路由,可以不按照顺序到达,可能重复。一条链路,一种协议,多种路由。是端到端的,从A发信息到B,过程是不分段的,逻辑上是直连的。

    IMG_1360.JPG

    传输层:TCP/UDP/SCTP...和网络层的一个重要区别是,网络中的所有结点必须有网络层,但是只有两端才需要传输层。单位是报文段。端到端,一条链路,一种协议。从A发信息到B,过程是不分段的,逻辑上是直连的。

    IMG_1361.JPG

    应用层:单位是报文,端到端。从A发信息到B,过程是不分段的,逻辑上是直连的。

    IMG_1362.JPG

    编址
    数据链路层:物理地址。仅对链路(局域网或广域网)有效。大多数此层协议中,目的地址放在源地址之前。发送后,链路中物理地址不等于目的地址的将frame丢弃,等于的接受并做操作。
    绝大多数局域网使用48bit(6byte)的物理地址,并写成12个16进制的数字,每个字节用冒号隔开,如:01:02:03:FF:EE:DD。
    依据接受者,可分为单播,多播,和广播。以太网均支持,不支持的协议需要多播或广播时,要进行模拟。

    网络层:逻辑地址。在因特网上不存在两台具有相同IP地址的公开编址的实体主机。大多数协议中,源地址放在目的地址之前。IPv4中,是32bit(4byte)。

    传输层:端口地址。标识进程,16bit(2byte)。通常用一个10进制数表示。

    应用层:特定应用地址。

    按照之前的记录,物理地址逐跳而变,逻辑地址和端口地址保持不变,但有例外情况。

    2 底层技术

    从概念上讲,因特网就是由交换广域网(主干网)、局域网、点到点广域网,以及连接设备或交换设备共同组成的集合。虽然TCP/IP协议族通常表示为五层,但是它只定义了上三层,即应用层、传输层和网络层。

    有线局域网
    局域网(LAN)是设计在有限地理范围内使用的计算机网络。以太网占据绝对优势,已发展出第四代。

    Project 802用来指明主要局域网协议中物理层和数据链路层功能。
    IEEE将数据链路层划分为两个子层:逻辑链路控制层/Logical Link Control/LLC,介质接入控制层/Medium AccessControl/MAC。

    以太网frame格式
    7个字段:前同步码,帧首定界符SFD,目的地址DA,源地址SA,数据单元的长度/类型,上层数据,CRC。

    FullSizeRender.jpg

    前同步码:7byte(56bit)交替出现的0和1,作用是提醒接收系统有帧到来,并使它与输入定时同步,即一个通知及定时的脉冲。允许接收系统错过前几个bit,有一定的容错性。前同步码实际上是物理层添加的,并不是正式的frame的一部分。

    SFD:1byte。也是物理层添加,提醒接收系统是最后一次进行同步的机会,最后2bit是11,提醒接收系统接下来是DA。

    DA:6byte。

    SA:6byte。

    长度/类型:2byte。最初以太网协议用此字段定义使用MAC帧的上层协议,在IEEE标准中定义为长度,是数据字段的字节数目。

    数据:46<=len<=1500byte。即最少要有64byte,其中头尾是(6+6+2+4=)18byte,数据不够要加填充字段。是一代以太网为检测到碰撞所设置的边界值。

    CRC:4byte,CRC-32校验。

    以太网编址
    网络接口卡(Network Interface Card,NIC),有6byte的物理地址。也称为数据链路地址,物理地址或MAC地址。

    若目的地址的第一个byte的最低位bit位是0,那么这个地址是单播地址。反之是多播地址。广播地址是48个1。在16进制记法中,从左到右,第2个十六进制数,若为偶数则是单播,奇数则是多播。全F是广播。

    以太网的发展
    一代:10Mbps
    所有站共享信道,若两个站同时发数据,会发生碰撞。A发数据到B,若B接受到A的数据的同时也在发数据,就会返回碰撞给A。A接收到此信号后,若之前的数据还未完全发完,则未完成的传输被放弃,之后会等待一个随机数时间后进行下次尝试;若之前的数据已经发完,则A不会认为有碰撞发生。所以frame的长度一定要达到某一值,以保证当B的碰撞消息到达A时,frame还未发完。
    若最大传播时间是25.6μs,则消息一来一回需要×2=51.2μs。
    初代10Mbps即每秒可发送10Mbit,则10Mbps × 51.2μs = 10 × 51.2bit=512bit=64byte。
    以上接入技术成为CSMA/CD。可以看出初代是是半双工。
    书中并没有写明最大传播时间是怎么设置的,估计与实际物理能力限制有关。

    二代:100Mbps
    半双工时,使用集线器链接使用CSMA/CD不变。全双工使用交换机,交换机的每个端口有缓存,不存在碰撞,就不需要CSMA/CD了。
    此时出现自动协商功能,即多个设备之间可以对数据率进行协商,确保高级的能够兼容低级的。

    三代:1Gbps
    此技术中全双工为主流,没有碰撞,同时电缆的最大长度不是有碰撞检测过程决定了,而是变成电缆中的信号衰减来决定。

    四代:10Gbps
    只能使用全双工。

    在各代技术中,新一代均兼容所有前代,地址依然是48bit,帧格式未变,最小和最大帧长也未变。所以64byte在新的以太网中已经没有了原先的意义。

    无线局域网、蓝牙
    IEEE定义了无线局域网,称为IEEE802.11,也称为无线局域网,包含物理层和数据链路层。
    常用的一种MAC子层是基于CSMA/CA(碰撞避免的载波监听多点接入)的,不能直接应用CSMA/CD的原因有三:进行碰撞检测需要同时收发数据,意味着费用上升和带宽增加;存在隐藏站使得碰撞不可检测;站间距可能很远。
    存在三种帧,源站等待一段时间后发送管理帧给目的站用来通信初始化,目的站接收后等待一段时间发送控制帧给源站用来确认信道帧和信道的接入,之后双方进行数据传输,即数据帧,最后目的站给源站发送控制帧用来表示ACK。

    蓝牙是一种自组织网络。

    点到点广域网
    从公共网(如电话网)中获取一条线路来链接两个远程设备。如调制解调器技术、DSL线、电缆调制解调器、T线、SONET。
    调制解调和DSL都是使用电话网来连接互联网。调制解调是使用传统的调制解调器将数据转化为模拟信号通过电话线连接,语音业务和数据业务只能二者选其一。DSL(Digital Subscriber Line)如名字所示是使用专有的数字电话线,ADSL(Asymmetric)非对称数字用户线技术常用语居民用户,下行远大于上行速率(人为设计原因),与此相对的是SDSL(Symmetric)对称数字用户线,专为上下行均需要大数据的企业设计。DSL技术将语音和数据业务分离,二者可以并发。
    电缆调制解调器使用有线电视网,系统架构与DSL类似,电视视频和数据业务可并发。
    T线是标准的数字电话线路,最初用来复用语音信道。
    SONET同步光纤网,可以将光电信号进行转换,光信号更快。
    专为此类网络设计的一种协议称为点到点协议(Point-to-Point Protocol,PPP)。只有物理层和数据链路层,其中物理层没有特定的协议。
    链路控制协议(Link Control Protocol,LCP)负责建立、维护和终止链路。网络控制协议(Network Control Protocol,NCP)是为了使PPP更具有灵活性,从而携带来自不同网络协议(包括IP)的数据。
    原先PPP只是为单个用户通过传统的调制解调器和电话线连接到互联网而设计的,但是DSL、电缆调制解调器和无线技术允许以太网上的多个用户使用一条物理线路来接入互联网,PPPoE(PPP over Ethernet)为此而生。

    交换广域网
    因特网的主干网可以说交换广域网,即覆盖大面积(一个州或国家)的广域网,并可提供多个接入点。网络内部用网状的点到点网络来连接各交换机,这些交换机都有多端口连接器,可连接多个输入输出。使用面向连接的技术,即在发送之前,发送和接受双方需要建立一条连接,分为建立,传输和结束三个步骤,使用的连接标识符取代局域网中的源地址和目的地址。
    异步传递方式(Asynchronous Transfer Mode,ATM)是一种信元网络(这东西貌似已经过时,或者说从未流行过)。一个信元(cell)是一个很小且长度固定的数据单元。ATM使用异步时分复用,采用和信元长度相同的定长时隙,当来自多条链路有信元时就通过复用器装入一条发送通道中的一个时隙。
    ATM系统的中端点之间的连接可通过传输路径(TP),虚通道(VP),虚电路(VC)。TP是物理连接的集合(高速公路)。VP是TP集合中的一条或一组连接(一条高速公路)。而信元网络是基于VC的,属于一个报文的所有信元都会沿着一条相同的VC传输,并保持顺序,可视为高速公路上的一条车道。
    一条虚连接的标识:虚通道标识符VPI,虚电路标识符VCI。
    ATM分为三次,从上到下是应用适配层,ATM层和物理层。物理层和ATM层用于网络内部的交换机和ATM业务的端点(如路由器),而应用层(AAL)只用于端点。
    AAL用于现有网络和ATM设施连接,其中AAL5用于运载IP分组。AAL5将不超过65535byte的IP分组附加一个8byte的尾部,以及一些padding,将报文以48byte为长度依次传递给ATM层。ATM接收到48byte后,增加5byte的首部转化为53byte的信元。VPI和VCI位于首部。

    连接设备
    用以连接局域网和广域网,形成互联网。
    三种连接设备:转发器(集线器)、网桥(两层交换机)、路由器(三层交换机)。
    转发器和集线器工作在物理层,网桥和两层交换机工作在物理层+数据链路层,路由器和三层交换机工作在物理层+数据链路层+网络层。

    FullSizeRender 2.jpg

    转发器接收到信号(在衰减范围之内)后,再生或重演原来的比特模式,再发送出去。没有过滤功能。转发器通常链接一个局域网的两个网段,防止因为衰减而导致的信号传送距离过短。若转发器位于星型拓扑内,具有多个端口并与多个设备连接,此时称之为集线器(hub)。当一个集线器收到来自A的信号后,会将此信号在局域网内进行广播(包括向A)。

    网桥在物理层与转发器功能相同,在数据链路层可以检查MAC地址,因此有了过滤功能,它可以依据目的地址来判断需要从哪个端口发送出去。判断方法是内建的一张转发表。
    转发表初期是静态的,后来进化成动态的。使用动态转发表的版本中,当一个设备A从端口1发送一个frame给网桥后,网桥进行解析,此时表中并没有目的地址对应的端口,则该网桥将该frame向除端口1外的其余所以端口发送,并在表中记录端口1相对应的地址是frame中的源地址。循环下去,直到所有端口均有了对应的地址。这个过程称为学习。

    交换机有两层和三层的区分,描述时需要注意。三层交换机就是路由器。

    路由器在物理层和数据链路层的功能和前面两种设备相同,在网络层,它可以检查IP地址。

    和其他两者的区别:

    1. 转发器或网桥链接的是一个局域网内的各个网段,而路由器则可以把几个独立的局域网或广域网连接起来,形成真正的互联网。
    2. 路由器的每一个接口都一个MAC地址和一个IP地址。
    3. 当分组中的MAC目的地址和抵达时的端口的MAC地址匹配时,才会发挥作用,也就是说只有路由器确认该frame是发送给它的才会进行操作。
    4. 路由器在转发时会更改分组的MAC地址。转发器不涉及MAC地址,而网桥也仅仅是对frame做转发操作,只有路由器会根据路由的选择结果来决定走哪个端口,从而更改为对应的MAC地址。

    参考

    《TCP/IP协议族(第4版)》 (Behrouz A.Forouzan) 第一、二、三章

    相关文章

      网友评论

        本文标题:《TCP/IP协议族(第4版)》读书笔记一

        本文链接:https://www.haomeiwen.com/subject/bfzxhttx.html