传输层

摘自https://www.cnblogs.com/whgk/p/6118206.html

通过mac地址可以找到对应的主机,怎么找到主机应用进程呢,
有一个东西来标识他,---端口

端口

占有16位,主机间的通讯,也就是应用进程间的通讯,都要依靠端口,一个进程对应一个端口,
熟知端口:0--1023,一些固定的端口
登记端口:1024--49151, 系统引用
客户端端口:49152--65535, 客户端应用

UDP 协议

User Datagram Protocol 用户数据报协议
无连接,不可靠
无连接:通讯前不需要建立连接,直接传输数据
不可靠:没有确认机制,没有超时和重传功能,如果丢失,会发送一个ICMP差错报文给源主机

UDP 首部

源端口号: 占16位,源主机的应用进程所使用的端口号
目标端口号:占16位
UDP报长度
检验号:

UDP伪首部

使用UDP协议的例子
1.DNS,就是根据域名解析ip地址的一个协议,他使用的就是UDP
2,DHCP,这个是给各电脑分配IP地址的协议,其中用的也是UDP协议
3,IGMP,我们说的多播,也就是使用的UDP,

TCP协议

面向连接的: 确认机制使双方确认互连
可靠传输:确认机制,失效则重发
有流量控制:客户端缓存过大时,服务端发送窗口减小
堵塞控制: 网络拥塞时,服务端发送窗口减小,
面向字节流传输

TCP报文结构

源端口号
目标端口号
序列号: 所传分组数据的位置
确认应答:
首部长度
保留
控制位:
URG:紧急,传送到目标主机不用排队
ACK:确认,当=1为确认=0为无效
PSH:推送.=1 减少数据向上交付
RST:复位.报文严重错误,会RST=1,然后释放连接
SYN:同步,在进行连接的时候,就三次握手用的到
FIN:终止,在释放连接时
窗口:用来控制对方发送的数据量
检验和:检验首部和数据这两部分
选项:长度可变
填充:就是为了让其成为整数个字节

可靠传

数据编号::将每个字节进行编号
累积确认:服务器端收到一个字节就发一个确认,那样效率太低,而是当收到4,5个时在发送一个确认
滑动窗口:
超时重传时间:
快速重传:

流量控制

在传输层中,有接收缓存和发送缓存,每次发送数据会携带,如果对象缓存快满,会告诉自己,少发点数据,让对方有缓冲的机会,不会导致缓存溢出,不让自己的报文被丢弃

拥塞控制

当检测到网络拥塞,

释放连接四次挥手

第一次挥手:从ESTABLISHED变为主动关闭状态,客户端主动发送释放连接骑牛给服务端,FIN=1,发送完后变为FIN_WAIT_1状态
第二次挥手:服务器收到释放链接状态后,状态变为CLOSE_WAIT,然后发送确认报文给客户端,客户端收到确认后进入FIN_WAIT_2状态,
第三次挥手:服务器端所有数据发送完,向客户端发送释放连接报文,自己进入LAST_WAIT状态,也就是等待客户端确认状态
第四次挥手:客户端收到释放连接报文后发送确认报文,自己变为TIME_WAIT,服务端收到确认报文,进入CLOSE状态,客户端稍后进入CLOSE状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值