1 OSI与TCP/IP各层的结构与功能,都有哪些协议
学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。
应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。
应用层协议定义的是应用进程间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。
运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
运输层主要使用以下两种协议:传输控制协议 TCP(Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务。用户数据协议 UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。
网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。 在发送数据时,网络层把运输层产生的报文段封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称 数据报。
数据链路层(data link layer) 通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装程帧,在两个相邻节点间的链路上传送帧。
物理层上所传送的数据单位是比特。物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上面的数据链路层不必考虑网络的具体传输介质是什么。
在互联网使用的各种协中最重要和最著名的就是 TCP/IP 两个协议。现在人们经常提到的TCP/IP并不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。
2为什么要分层?
1每层的功能明确,使得功能更加模块化,结构化
2降低耦合性,便于开发,当某一层的功能实现改变时,不影响其它层(因为仅仅是功能的实现方式改变了,但最后还是实现的那个功能)
3国际化标准的指定
3IP协议的理解?
IP首部
版本: 包含IP数据报的版本号:ipv4为4,ipv6为6;
首部长度: 其中保存的是整个首部中的“32位字”的数量。这个字段正常的值为:5(假设“可选字段长度为0”)该字段最大值为:15(可选字段长度全满加上原有字段);
8位的服务类型:
优先级(3位) 和数据链路层的QoS机制有关,定义了8个服务级别。当Qos选择了某种服务模型后,优先级越高,字段越优先传输。
D、T、R分别表示延时、吞吐量、可靠性。当这些值都为1时,分别表示低延时、高吞吐量、高可靠性。
总长度: 该字段指的是IPv4数据报的总长度(以字节为单位)。通过该字段和“首部长度”字段,我们可以推测出ip数据报中“数据部分”从哪开始以及长度。
标识、标志、分偏移:
该字段帮助标识由IPv4主机发送的数据报。
这个字段对实现分片很重要,大多数数据链路层不支持过长的ip数据报,所以要把ip数据报分片,每一片都是一个独立的ipv4数据报。
发送主机每次发送数据报都将一个“内部计数器”加1,然后将数值复制“标识”字段中。
生存时间TTL:
该字段用于设置一个“数据报可经过的路由器数量”的上限。
发送方在初始发送时设定某个值(建议为64,、128或255),每台路由器再转发时都将其减一,当字段达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方。
协议:
包含一个数字,该数字对应一个“有效载荷部分的数据类型”。比如17代表UDP,6代表TCP。
首部校验和:
该字段“仅计算”IPv4首部。也就是说只“校验”首部。并不检查数据报的“数据部分”。
首先将“首部校验和”设置为0,。
然后对首部(整个首部是一个16位字的“序列”)计算16位二进制反码和。该值被存储在首部校验和字段中。当接收方接收到数据报后,也对其首部进行校验计算,如果结果与“首部校验和”的值不同,就丢弃收到的数据报。