计算机传输层

  • 传输层协议为运行在不同的Host进程提供了一种逻辑通信机制。
    • 位于网路层之上
    • 依赖于网络层
    • 对网络层进行增强

传输层协议

TCP:拥塞控制,流量控制,连接建立
UDP:基本基于网络层的服务。
计算机网络传输层的功能:多路复用 多路分用
多路复用:

从多个·Socket接收数据,为每个数据封装上头部信息,生成Segment,交给网络层。

多路分用:

传输层依据头部信息将收到的Segment交给正确的Socket,即不同的进程。

基本过程:

主机接收到IP数据报。
1每个数据报中含有源IP地址,目的IP地址。
2.每个数据报中携带一个传输层的段
3.每个段携带源端口号和目的端口号。
主机接收到Segment之后,传输层协议提取IP地址和端口号,将Segment导入到相应的Socket

TCP可靠数据传输

  • 可靠的含义:不错,不乱,不丢。
  • 可靠信息的传送控制信息是双向的,就是网络层需要和运输层一起实现。

TCP的传输连接管理

 传输连接有三个阶段:连接建立,数据传输和链接释放。TCP连接采用的是客户服务器方式。
 主动发起连接建立的应用是客户
等待连接建立起来的是服务器。

连接过程:

服务器主动打开,进入Listen状态。
客户端:发送一个数据包,(同步标记)SYN=1,确认标记ACK=0,自身序列seq=x.进入SYN—SEND状态

服务器:SYN=1,ACK=1, 自身序列号seq=y,确认号ack=x+1。进入到SYN-RCVD状态,client收到数据包后进入到ESTAB-LISHED状态。
客户端:ACK=1 seq=x+1,ack=y+1,服务器收到数据包后进入到ESTAB-LISHED状态。
注意:SYN是同步标记,请求建立连接的时候使用
ACK是确认标记
ack是确认号,表示希望下一次收到数据的标号。
seq是自身数据的序列号。

为什么是三次连接:
<计算机网络>
1.前两次连接已经足够保证网络畅通。
2.防止服务器的资源浪费:

假设第一次client端发送了一个请求报文段1,但是在网络中延时过久。
此时client端重新发送一个请求报文段2,很快到达serve端,并回应。此时建立起来连接
后到的请求报文段到达server端,此时serve端做出回应,等待数据的传送,但是client不会传送数据,此时就造成了服务器资源的浪得。
- 另一种解释
两次握手并不能保证数据通道的建立,因为是全双工通信,通信双发都必须接到对方的告知,告诉信道完整。
- SYN攻击:大量假地址发起请求回话连接,使得serve端处于SYN—RECV状态。

  • 连接释放:
    • 数据传输结束后,通信双方都可以释放连接。
    • 假设A释放连接,A把连接连接释放报文段首部FIN=1,其序号为seq=u,请求B的确认。此时A进入FIN-WAIT-1状态。
    • B接收到释放报文段后,发送数据报ACK=1,seq=v,ack=u+1,进入到CLOSE-WAIT状态,A收到报文段后进入到FIN-WAIT-2状态
    • B此时发送一个链接释放的报文段,FIN=1,ACK=1,seq=w,ack=u+1,进入到LAST-ACK状态
    • A接收到报文段后,发送一个ACK=1,seq=u+1,ack=w+1的报文,进入到TIME-WAIT状态,过一会自动进入close转态(2MSL),确保服务器可以正常关闭。
    • B收到后直接进入close状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值