应用层协议
超文本传输协议
–HTTP、HTTPS
文件传输
–FTP、TFTP
电子邮件
–SMTP、POP3
远程登录
–Telnet、ssh
网络管理
–SNMP*
名称管理
–DNS*114.114.114.1148.8.8.8
解释
WWW---http、https
人们只需要轻轻点一下鼠标,世界各地的信息都会呈现在电脑上。
Emil--SMTP、POP3
互发电子邮件
FTP、TFTP
互联的计算机之间相互发送、接受文件。
telnet&ssh
远程登录,A登录主机B,就可以自由操作主机B了
传输层
传输层的作用:提供端到端的传输服务
TCP
提供面向连接的、可靠的、有序的、流量控制的传输服务
UDP
提供无连接、不可靠的、无序的、无流量控制的传输服务
通过端口号区分上层应用
TCP/UDP报文
UDP报文的格式是16位源端口,24位目的端口,16位UDP长度以及16位UDP校验和。端口区分上层应用,源端口是自己的,目的端口是对方的,UDP源端口大于1023,通过源端口去访问http协议,目的端口才是默认的.16源端口(1023-65535的随机数)udp报文最大值不会超过1500字节,udp首部是有8个字节
TCP报文格式更复杂,也有16位源端口,24位目的端口,但是TCP有32位序列号和确认号,他的首部长度保留6位,在目的端口处,有16位窗口大小,源端口也有16位TCP校验和,目的端口有16位紧急指针,32位序列号编号排队,对传输量比较大的数据进行分包排序,对方收到数据包后按照序号排序。体现了tcp的有序性32位确认号,收到消息返回一个确认号,确保收到了消息.
32位确认号:pc1将数据编号如100发送到pc2,pc2会向pc1回复一个已经收到数据包100的确认好,
如果pc2没有回复确认收到100的数据包,则pc1会重新传递一个100的数据包给pc2.直到收到100的确认。体现出tcp的可靠性
tcp=报文长度为(20字节(默认)+可变长度(0-40字节))=20-60字节,去标识tcp报文报头,因为
tcp首部长度是可以变化的。
tcp报文=首部长度(报头)+数据长度
端口号
传输层利用TCP或者UDP报文中的端口号来区分上层的应用协议及特定的进程
端口号
源端口随机分配,使用系统中未使用的且大于1023的端口。
目标端口使用知名端口,标识服务器端的进程
TCP
含义:TransferControlnProtocol传输控制协议
为应用层协议提供端到端的传输服务
面向连接的、可靠的、有序的、流量控制的
基于TCP的应用在传输数据之前必须先由TCP建立连接,在传输过程中由TCP解决可靠性、有序性,进行流量控制,传输结束后由TCP拆除连接。
1.源端口标识发送方的进程,目的端口标识接收方的进程
2.序号保证数据传输的有序性,确认号对收到的数据进行确认
Flag字段(8位)
‒ACK
‒确认号标志,置1表示确认号有效,表示收到对端的特定数据
‒RST
‒复位标志,置1表示拒绝错误和非法的数据包,复位错误的连接
‒SYN
‒同步序号标志,置1表示同步序号,用来建立连接
‒FIN
‒结束标志,置1表示连接将被断开,用于拆除连接
Option字段
‒MSS最大段大小,通过置位,协商能承载的TCP数据的大小
三次握手—建立连接
A---------B,A向B发送数据,SYN置位为1,B回复一个ACK置位为1,表示我已经收到你的数据,代表我同意和你建立连接,序列号在包里体现,双向建立,在B的数据包里面SYN置位为1,建立B-------A的连接,A收到以后看见SYN标志,会把自己数据包ACK置位为1,同时生成一个数据包,产生一个确认号代表自己已经收到了B发送的数据包,通过TCP三次握手检查你是否在线。ACK置位为1表示我同意,同时返回一个acknumber=seqnumber+1,B也要向A建立连接,A也要再回一个包。
标志位:SYN,建立连接标志位,和面向连接有关
ACK:确认标志位
四次挥手—拆除连接
主机A和主机B需要拆除他们之间的连接。主机A首先向主机B发送一个FYN置1的数据包,并指明初始序列号;主机B收到这个数据包,返回一个ACK置1的数据包,指明确认号(接收到的数据包的序列号加1),这样就拆除了主机A到主机B的连接。主机B再向主机A发送一个FYN置1的数据包,并指明初始序列号;主机A收到这个数据包,返回一个ACK置1的数据包,指明确认号(接收到的数据包的序列号加1),这样就拆除了主机B到主机A的连接。
为什么四次挥手拆除不是三次?
因为双向拆除,分开拆除的原因就是防止数据丢失。A--------B,A向B请求,反应很快,如果三次挥手拆除会导致上面拆除跟着拆除,所以说分开拆除,四次挥手拆除。
RST--复位,重新
URG:紧急标志位,和紧急指针一起用,和流控一起用,流量控制
PSH:对方收到数据后,快速交给应用层做处理,和流量控制有关系
16位窗口大小:滑动窗口,通过接收方反馈能够接受多少数据,发送方就发送多少数据,和流量控制
有关。
16位tcp校验和,看看数据包有没有发生变化。
选项字段,扩展报头,报头加长了,数据变少了
TCP和UDP对比
标签:UDP,主机,端口,TCP,连接,四次,传输层,数据包,应用层 From: https://blog.csdn.net/2403_86598006/article/details/1432589341.传输速度,TCP比较慢,因为TCP需要建立连接,而UDP不需要,所以传输速度UDP更快
2.可靠性,TCP可靠性更高,因为TCP收到数据包后还需要回复确认号,UDP不需要,UDP可靠性更低。
3.面向连接,TCP需要三次握手和四次挥手,而UDP不需要连接。
4.传输效率,TCP较低,因为传输字节更少,例如UDP传输1492,而TCP传输1480.
所以TCP适用于文字邮件,UCP适用于直播视频。