目录
一、应用层
二、运输层
1.UDP协议
2.TCP协议
3.UDP与TCP的使用场景
(1)UDP的使用场景
(3)TCP的使用场景
三、网络层
四、数据链路层
五、物理层
六、数据传输过程
计算机网络的协议有七层、四层还有五层,教材的版本不同,所采用的协议结构也不同,我们以五层为例:
应用层为最高层:能够和用户交互,所有能够产生网络流量的程序。
它使得应用程序能够直接运行于传输层之上,直接为用户提供服务。包含的主要协议有文件传输协议(File Trabsfer Protocol, FTP)、简单 邮件传送协议(Simple Mail Transfer Protocol, SMTP)、远程登陆协议、域名服务协议(Domain Name Service, DNS)、网络新闻传送协议(Network News TransferProtocol, NNTP)和超文本传输协议(Hyper Text Transfer Protocol, HTTP)等。
表示层:
信息传输之前如果需要对数据进行处理。
网络的安全和保密管理;文本的压缩与打包;虚拟终端协议 (VTP)。
会话层:
①将会话地址映射为运输地址.
②选择需要的运输服务质量参数。
③对会话参数进行协商.
④识别各个会话连接.
⑤传送有限的透明用户数据.
运输层的任务就是负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付给上面的应用层中相应的进程。
运输层主要使用UDP和TCP两种协议,主要目的是将数据发送给指定的应用。
TCP/IP协议栈
UDP协议特点:
a. 无连接;
b. 尽最大努力交付;
C.面向报文;
d.无拥塞控制;
e. 支持- -对一、-对多、多对一和多对多的交互通信;
f. 首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。UDP首部占8个字节
UDP首部格式:
TCP协议特点:
a.面向连接; 通信之前必须建立连接
b. 每-条TCP连接只能是点对点的(一对一) ;
C. 提供可靠交付的服务;通过TCP连接传输的数据,无差错,不丢失,不重复。
d. 提供全双工通信;
e. 面向字节流。虽然程序和TCP交互是一次一个数据块,但是把应用程序交下来的数据看成仅仅是一
连串的无结构的字节流。
f.TCP首部占20字节。
TCP首部有个填充字段为了使整个首部长度使4字节的整数倍
源端口号和目的端口各占两个字节,端口号是标识特定主机上的唯一进程,IP地址用来标识网络中的不同主机。
确认序号4个字节,,序号是对数据的编号,确认序号是下一个希望接收的TCP编号。
序号4个字节,表示在这个报文段中的第一个数据字节序号
位数据偏移以32位(4字节)字长为单位,需要这个值是因为任选字段的长度是可变的。
保留位 6位 必须为0
标志位占有六个比特位
URG:该位为1说明表示TCP包的紧急指针域有效,用来保证TCP连接不被中断,并督促上层应用敢快处理这些数据。
ACK标志=1时有效,确认号表示期望收到的下一个字节的序号,ACK=收到的序号+数据长度
PSH:接收方应尽快将这个报文交给应用层,叫做push。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中排队。
PSH: 当PSH置为1时,接收方应该尽快将整个报文交给引用层,而不是在缓冲区中排队处理(类似字节流中的flush)
RST:当REST置为1时,连接复位,用于复位因为主机奔溃或者其他原因导致的错误连接,也可以用于拒绝非法请求
SYN:同步序号,通常与ACK一起使用来建立连接,也就是常说的三次握手(TCP详解中会具体介绍)
FIN:当FIN置为1时,表示连接将会断开,用于发送断开连接的请求,也就是四次分手。(TCP详解中会具体介绍)。
校验和用于对分段首部和数据进行校验。正常情况下为一定为0.
UDP由于不保证消息的可靠性,所以UDP适合发送一-些消息不需要保证每条都准确无误到达接收者。例如:视频通信。
由于TCP能够能保证消息的准确性,所有例如游戏信、文字信息等适合用TCP通信。
负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。
有点像送快递,一个人往另一个地方寄快递,每个快递走不同的路线,可能后发的先到了,也可能丢件了。但是网络层不管这些,只管寄快递。
封装成帧:通过特殊的0101标识,表示数据的开始和结束特殊字符特殊字符可能和数据信息重复。
EOF、SOA转义字符
差错检测:差错检测仅仅能够检测出哪个是错误的保温然后将错误的数据抛弃。(只检测错误, 但是
不纠错。)纠错:传输层。(TCP)
透明传输:中间如果插入了转义字符不会引|起最终数据读取的差错。
数据链路层常用设备:适配器、转发器、集线器、转发器、以太网交换机等。
物理层不是物理传输媒体,物理层所考虑的是怎样能连接上各种计算机的传输媒体上传输数据的比特流.物理层可以屏蔽掉数据链路层感觉不到的差异
发送方
应用层产生消息- +运输层对消息使用TCP或者UDP协议进行封装- →网络层使用IP协议进行封装一数据链路层对数据进行封装- >物理层将消息转为比特流在物理设备上传输
接收方
物理层:将比特流转成数据链路层能够解析消息-→数据链路层:局域网信息传递一→网络层:去掉ip协议对信息的封装- 运输层:去掉TCP/UDP协议的封装-应用层:将信息解析出来。