㈠ 常用的网络互连设备有哪些它们各处于TCP/IP参考模型的哪一层
常见的设备如:集线器、网桥、交换机、路由器。一般也就是这些。
网络互联回,主要指答下三层的运行。物理层、数据链路层、网络层;
集线器工作在物理层,集线器把各个终端互相连接起来而已,处理的是信号。
网桥和交换机是一回事 ,交换机就是网桥的集合。它们工作在链路层。它们处理的是链路层数据,一般来说就是以太网帧格式的数据。
路由器工作在网络层,处理网络层数据,也就是ip报文格式的数据,目前来看网络层的报文格式是ip一家独大,当然路由器也可以处理tcp、udp等四层数据,以及ppp等三层数据。但它的主要作用在于ip转发,所以我们一般认为它是网络层设备。
㈡ IP数据报格式
先回顾一下TCP/IP协议栈
网络层的协议有IP协议、ARP协议、ICMP协议和IGMP协议。其中IP协议是最主要也是最重要的协议,所以本文先从IP数据报的格式开始介绍。
本文内容
一个IP数据报由 首部和数据 两个部分组成。
其中首部的前一个部分是 固定部分 ,长度固定共20字节,这是所有IP数据报必须具有的。后一部分是可变部分,其长度是可变的,不是必须的。
(1) 版本 :占4位,指 IP协议的版本 。目前广泛使用的IP协议版本有两种 IPv4 和 IPv6 。
(2) 首部长度 :占4位,其单位是 4B 。所以 首部长度必须是4B的整数倍 。如首部长度字段的4个二进制位分别是1111(对应十进制是15),则IP协议首部的长度是15 × 4B = 60B(字节)。由于IP数据报首部的固定部分长度固定是20,所以首部字段最小从0101开始。
(3) 区分服务 :占8位,一般情况下不使用该字段。只有使用区分服务时,这个字段才起作用,如要求当前的数据报设置高优先级优先发送。
(4) 总长度 :占16位,表示首部和数据部分长度之和,单位是字节。
(5) 标识、标志、片偏移是关于IP数据报分片的,见下文。
(6) 生存时间 :占8位,表示数据报在网络中的 寿命 。由发送数据报的源点设置这个字段,其目的是为了防止那些无法交付的数据报无限制的在互联网中兜圈子(例如从路由器R1转发到R2,再转发到R3,然后又转发到R1),因而白白浪费网络资源。 数据报每经过一个路由器,这个值就会减1,当减至0时,就丢弃该数据报。
(7) 协议 :占8位,协议字段是指出次数据报所携带的数据是使用的协议。这里记两个协议字段的值: 6表示TCP协议,17表示UDP协议。
(8) 首部校验和 :占16位, 只校验数据报的首部,不检验数据部分 。数据报每经过一个路由器都要重新计算一下首部校验和(一些字段,如生存时间、标志、片偏移可能发生了变化)。
(9) 源地址和目的地址 :各占32位。
(1) 可选字段 :长度可变,从1字节~40字节。可变部分是为了 增加IP数据报的功能 ,如用来支持排错、测量以及安全等措施。
(2) 填充 :IP数据报的首部长度必须是4B的整数倍,所以如果首部长度不满足4B整数倍时,就使用填充字段将首部填充到4B的整数倍。
数据链路层将网络层传送的数据报添加头部和尾部封装成以太网帧,数据链路层封装数据帧长度是有限制的,以太网规定其最大传送单元MTU的值是1500字节,如果从网络层传输下来的数据报长度超过MUT值,就必须把过长的数据报进行分片处理。
而上节IP数据报首部固定部分的标识、标志和片偏移就是用于数据报分片的。
(2) 标志:占3位,目前只有两位有意义。
(3) 片偏移 :占13位,以8B为单位。其表示较长分组分片后,某一片在原分组中的相对位置,也就是说相对于 用户数据字段的起点 ,该片从何处开始。这也就是说, 除了最后一个分片,每个分片的长度一定是8B的整数倍。
举个例子说明一下,假设一个数据报的总长度是3820个字节,其数据部分为3800字节长(首部仅仅使用固定部分),需要分片为长度不超过1420字节的数据报片。因固定首部长度为20字节,因此每个数据报片的长度不超过1400字节。于是分为3个报片,其数据部分的长度分别为1400、1400、1000字节。原始数据报首部被复制为各个数据报的首部,但是必须修改有关字段。
对于原始数据报、数据报片1、2、3的首部部分信息如下图,(原始数据报的标识取12345)
注意区分几个字段的单位:
㈢ TCP报文的格式及TCP协议的工作原理
TCP报文格式
源端口和目的端口:都是16个比特,分别表示发送方和接收方的端口号。端口号和IP地址构成套接字(socket)地址的主要内容。源端和目的端的套接字合起来唯一地表示一条连接。网络应用程序在通信时直接向套接字发送和接收数据。
序列号和确认号:都是32位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。
头长度(HLEN):表示TCP报文头的长度。长度以32-bit为单位来计算。所以如果选项部分的长度不是4个字节的整数倍,则要加上填充(padding)。
保留域:紧接在头长度字段后有6个比特,应该把它设置为0。
再后则是6个标志位。标志位特定的含义:
URG(urgent)为紧急数据标志。如果它为1,则表示本数据报中包含紧急数据。此时紧急数据指
针表示的值有效。它表示在紧急数据之后的第一个字节的偏侈值(即紧急数据的总长度)。
ACK(acknowledge)为确认标志位。如果ACK为1,则表示报文中的确认号是有效的。否则,报文
中的确认号无效,接收端可以忽略它。
PSH(push)标志位。被置位后,要求发送方的TCP协议软件马上发送该数据报,接收方在收到数据后也应该立即上交给应用程序,即使其接收缓冲区尚未填满。
RST(reset)标志位。用来复位一条连接。RST标志置位的报文称为复位报文。一般情况下,如果TCP收到的一个报文明显不是属于该主机上的任何个连接,则向远端发送一个复位报文。
SYN(synchronous)标志位。用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据报为连接请求,如SYN=1而ACK=1则表示是接受连接。
FIN(finish)标志位。表示发送方已经没有数据要传输了,希望释放连接。
窗口(window)字段。窗口表示的是从被确认的字节开始,发送方最多可以连续发送的字节的个数。接收方通过设置该窗口值的大小,可以调节源端发送数据的速度,从而实现流控。
校验和(checksum)域。是TCP协议提供的一种检错机制。与我们在前面的章节中学过的UDP协议类似,在计算校验和时不仅要计算TCP报文自身(报文头和数据),还要增加一些额外的信息内容 – 12个字节的“伪包头”。
TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。
在Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是“网际网”,它实际上就是将全球各地的局域网连接起来而形成的一个“网之间的网(即网际网)”。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的“世界语”。
TCP/IP协议的开发工作始于70年代,是用于互联网的第一套协议。
㈣ OSI每层的数据格式
第一层:物理层,二进制传输,bit(比特流)
第二层:数据链路层,介质访问,frame(帧)
第三层:网络层,确定地址和最佳路径,packet(包)
第四层:传输层,端到端连接,segment(段)
第五层:会话层,互连主机通信
第六层:表示层,数据表示
第七层:应用层,为应用程序提供网络服务
五至七层为节点传输,发送和接收消息。
数据发送时,从第七层传到第一层,接收数据则相反。
上三层总称应用层,用来控制软件方面。下四层总称数据流层,用来管理硬件。
数据在发至数据流层的时候将被拆分。
在传输层的数据叫段,
网络层叫包,
数据链路层叫帧,
物理层叫比特流,这样的叫法叫PDU(协议数据单元)
第1层 物理层:处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流;
第2层 数据链路层:—在此层将数据分帧,并处理流控制。屏蔽物理层,为网络层提供一个数据链路的连接,在一条有可能出差错的物理连接上,进行几乎无差错的数据传输。本层指定拓扑结构并提供硬件寻址;
第3层 网络层:—本层通过寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。它包括通过互连网络来路由和中继数据 ;
第4层 传输层:—常规数据递送-面向连接或无连接。为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。包括全双工或半双工、流控制和错误恢复服务;
第5层 会话层:—在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式 ;
第6层 表示层:主要用于处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能;
第7层 应用层:OSI中的最高层。为特定类型的网络应用提供了访问OSI环境的手段。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,来完成一些为进行信息交换所必需的功能。它包括:文件传送访问和管理FTAM、虚拟终端VT、事务处理TP、远程数据库访问RDA、制造业报文规范MMS、目录服务DS等协议。