传输层——概述与结构

TCP + UDP
这两个的什么关系就不说了。

传输层协议和应用层协议的关系:

http = TCP + 80
https = TCP + 443
RDP = TCP + 3389
ftp = TCP + 21
共享文件夹 = TCP + 445
SMTP = TCP + 25
POP3 = TCP + 110
telnet = TCP + 23
SQL = TCP + 1433
DNS = UDP + 53

服务和应用层协议之间的关系:

服务使用TCP或UDP的端口侦听客户端请求
客户端使用IP地址定位服务器,使用目标端口定位服务
可以在服务器网卡上设置只开放必要的端口 实现服务器网络安全

如何查看服务侦听的端口
netstat -an
netstat -n 查看建立的会话
netstat -nb 查看建立会话的进程
telnet 192.168.12.1 3389 测试到远程计算机的某个端口是否打开
TCP报文首部格式:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到TCP内容挺多的。其中首部有20字节的固定首部,还有选项和填充。
1,源端口和目标端口就不说了:每个端口占16为。

2,序号(sequence number)占16位,我们应该明白数据在传输层传输过程中,数据并不是全部打包出去的,因为通常来说数据包都是比较大的,所以我们一般需要分段(类似于网络层中的分片),而序号就是表示每个段的开始的那个字节的大小。比如有一段数据包的字节是从5到10的,即5个字节,那么序号则应该是5。

3,确认号:假如计算机在收到了1到4的数据包后,他要给源主机发送一个确认信息,然后这个确认号表示源主机可以从第5个数据包开始发送了,因为前四个已经接收到了。

4,数据偏移:用来记录数据多少个字节之后开始有数据了。我们知道上面除了20个字节固定首部,还有选项和填充。占4位。

5,URG:假如我们在传输过程中,突然不想传了,这时候需要发送一个数据包告诉对面的主机,但是缓存里面已经有其他数据了,要等到他发送还需要一些时间,这时候我们可以设置URG = 1,表示他不用排队,马上就发送过去就可以了。

6,ACK:ack = 0,表示确认号无效,如果是1的话确认号有效。例如我们刚开始发送一个数据包主机时,这时候是没有确认号的。

7,SYN:同步的时候要用到的,例如主机要跟web服务器建立链接,那么主机要先把syn设为1,然后web同意,返回一个数据包,syn也是1。只在建立会话的时候才会为1。

8,PUS:pus设为1的话,代表计算机接收到的包要先读取,而不是在缓存里面等待。这个其实是跟URG相反的。

9,RST:如果rst为1,说明tcp会话出现严重错误,必须释放连接。重新建立链接。

10,FIN:fin为1的话,则是表示释放连接,数据已经传完了。

11,窗口:2字节,比如主机和web服务器通信,主机给web先发我这边的缓存最大为65535,那么web服务器那边就会设置发送缓存最大为65535。所以窗口就是为了设置缓存大小的。

12,校验和:这个计算略过。有机会跟网络层的一起说说。

13,紧急指针:2字节。只有在URG为1的时候才起作用。比如紧急指针为50,则表明从1到50的数据是需要紧急处理的数据。

14,选项:可以规定数据包最大长度是多少,如MSS = 1600。

TCP如何实现可靠传输:

1,以字节为单位的滑动窗口技术:
这个视频

TCP如何实现流量控制:

这个视频

TCP拥塞控制:

这个视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值