5月30日上课内容 第六章 传输层协议介绍

传输层的作用:


传输层-----数据段
1、源主机和目标主机之间,提供可靠的数据传输和通信服务。
数据分段和重组。发送放:上层应用程序传输的数据吧会被进行分段,每个数据段都有一个序列号。添加一定的控制信息.
接收放:在传输层把分段 的重组,形成完整的数据.
连接管理: 可以建立,维护以及终止源主机和目的主机之间的连接。tcp udp,主流都是tCP。可靠性保证:,数据分段后的有序传递,数据丢失后检测以及重传。数据的检测和纠错机制。确保传输过程中的数据完整性和可靠性。流量控制:
拥塞控制:
传输层的主要作用:1、数据分段,重组。

2、连接管理。(怎么建立连接,怎么断开连接。)

3、P是端到端通信。端口对端口tp当中: 包含源端口和目的端口。

传输层主要协议:tcp udp

什么是协议

协议:协议在计算机中扮演着重要的角色,规定了数据通信和交互的规则和约定

协议作用:

1、通信规范:数据格式,传输方式,消息结构(报文)、编码规则等,确保通信的可靠性,一致性,互操作性

2、数据交换:数据在网络中的交换方式,数据包的组织方式,传输顺序,错误检测,纠正机制,保证数据传输的正确性和完整性

3、安全性:协议可以规定数据的加密和身份人家机制,保障通信的安定,可以防止数据被未经授权的访问,篡改,泄露

4、设备互联:不同设备和不同系统之间能够互相连接和通信,不同厂商直接的不同设备可以实现互操作性

5、网络管理:定义网络管理和监控的规范。通过指定的协议,管理员可以追踪可管理网络中的设备、配置、故障。以确保网络的正常运行。

http         tcp

https         tcp

ssh        tcp

ftp        tcp

ospf        tcp

一、TCP协议

tcp协议:传输控制协议

面对连接的,可靠的进程到进程的通信协议。

程序:未执行的代码,就是程序

进程:运行的代码就是进程

线程:进程的实际执行者

tcp提供的全双工服务,数据可以在同一时间双向传出,每个tcp都有发送缓存和接受缓存,用来临时存储数据

特点:通信双方必须要建立连接,而且这个连接是有规范的,有步骤的。

udp:用户数据报协议

是无连接的,不保证可靠性的传输层协议

发送端不关心发送的数据是否到达了接收方,数据出错也不关心

接收方也不会对发送方做出回应。可靠性,由其他上层协议来保证

特点:传输数据的速度更快,效率更高

又叫流媒体协议

直播都是流媒体(基于udp)

tcp

自定义------udp协议

tcp

简图:

 

二、TCP报文格式

tcp报文的字段
源端口:发送放的端口号
目的端口:接收方的端口号
stream index:1序列号,索引号
flag; 标志位。tcp协议用来控制连接的标识符

控制位(flags):

URG:紧急位,紧急指针有效位

ACK:确认位,只有当ACK=1,确认的序列号字段才有效;ACK=0,确认号字段无效

Ack:表示接收方期望收到发送方下一个报文段第一个字节数据的编号,确认传输是否有问题。

SEQ:tcp报文的序号(这几个常用,面试会问,非常重要。必会)

SYN:同步位,连接位,同步序号位,tcp需要建立连接时,SYN=1才是建立连接

FIN:断开位,tcp完成数据传输之后,需要断开连接,提出断开连接的一方,要把FIN,设为1

PSH:急迫位,设为1时,要求接收方尽快的把数据发送到应用层

RST:重置位,RST=1时,要求重新建立tcp连接

(win:接收缓冲区的空闲空间)

三、TCP三次握手(重点,面试会问)

基于TCP协议的通信,第一步都是建立连接,建立连接的过程一定是三次握手

第一步:发送建立连接的请求SYN=1

1、pc1发起建立连接的请求(SYN=1,请求建立连接,序号为x[表示序号是随机的])

2、pc2发送报文表示愿意和pc1进行连接(SYN=1确认建立连接,表示你下一次传给我的序号为x+1,回应ACK确认进行同步)

3、发送ACK报文确认建立连接,同步完成,告诉pc2下次发送消息的序列号是y+1

PC1 PC2
第一步: pc1发送建立连接的请求
SYN=1 表示我希望和PC2建立。seq=1

 

pc2
SYN=1,ACK=1 确认同意建立连接(Ack=1+1 确认身份,确认你是pc1) seq=2

 

pc1

ACK=1(seq=2 (告诉pc2我是pc1,身份确认)Ack=2+1(确认双方的数据传输。)


客户端到服务端
第一步:客户端发送到服务器,建立连接的请求
客户端: SYN=1
第二步服务端响应连接,确立建立连接: SYN=1 ACK=1
第三步客户端确认同步,建立连接开始传输数据: ACK=1

为什么不需要第四次确认?

两次确认已经分别确定了双方的序列号。已经知道双方是谁,不需要再进行第四次确认了。

四、四次挥手(重点)

1、pc1发送FIN请求断开连接,确认

2、pc2发送ACK确认断开连接

3、pc2数据发送完毕,FIN确认断开连接

4、pc1发送ACK确认与pc2断开连接

tcp四次挥手:
p1 和 pc2
pc1断开连接
第一步:
FIN=1 ACK=1 断开,确认。
第二步:
pc2: ACK=1。确认是CP1
第三步:
pc2:FIN=1 ACK=1,我要和pc1断开,而且确认
第四步:
PC1 ACK=1,确认,断开

注:四层挥手:pc1发送断开连接之后,pc2回复ack确认,这个时候pc1将不再向pc2发送数据。

全部收到,处理完毕之后,pc2才会向pc1发送确认断开。pc1发送ACK,确认断开。

为什么是四次挥手而不是三次挥手(第二步第三步为什么不并成一步)

pc1和pc2之间建立连接核心目的是为了进行数据传输,pc1传输完数据了,请求断开连接,pc2还有数据没有传输完成,发送完数据才确认挥手断开连接。

防止另一端发送的数据,接收放还没有接收完毕,直接关闭,会导致数据丢失。所有要有等待数据全部接受完毕的过程。然后才能断开连接。以保证数据的完整。

总结:

tcp:1、tcp是基于连接控制的,双方都需要进行响应

2、数据传输是加密的,数据通信的安全性较高

3、传输速度比较慢,不论是建立连接还是断开连接都有一定的过程。

tcp的半关闭状态:(第二、三次挥手状态之间)

        一方已经停止发送数据,但是另一方还需要继续发送数据,

一方先发送fin=1,这时候表示不再发送数据,但是接收数据不受影响,

另一方回应ACK=1,确认发送方不发数据了,但是接收方还要继续传输数据。

接收方传完了数据,就进入最后的挥手阶段。

补充:

 

 

五、udp协议介绍

用户数据报协议

无连接,只管发送数据

因此传输数据的速度更快,效率更高

udp协议也叫流媒体协议(直播都是流媒体)

六、常见协议及其端口

附常见的使用tcp协议的服务:

服务        端口号       协议

http            80           tcp

https           443        tcp

nginx          80           tcp

mysql         3306        tcp

ftp               20 21       tcp

ssh              22            tcp 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值