二、传输层分析(运输层)

运输层在应用层和网络层之间,它为不同主机的进程之间提供了逻辑通信,运输层把从发送程序获取的数据组装成报文段,segment,然后传递给网络层,即:

                                                               应用层

                                                               运输层

                                                               网络层

运输层是衔接的桥梁,网络应用程序可以使用多种的运输层协议 。 例如,因特网有两种协议,
即 TCP 和UDP。 每种协议都能为调用的应用程序提供一组不同的运输层服务。

        运输层提供的服务我们当前讨论两种:TCP和UDP

但是在不同的教材中,这两种协议处理的数据称呼不一样,TCP处理的数据被称为报文段,UDP处理的数据被称为数据报。当前,将运输层处理的数据都称为报文段。

预备知识:简单的介绍下网络层的术语

IP:网际协议,Internet Protocol,提供一种尽力而为的交付服务,因此是不可靠服务,为每个主机提供一个IP地址

一、运输层的多路复用核多路分解

接收主机如何将一个到达运输层的报文段定向以一个指定的套接字?为了实现这个功能,每个运输层报文段在头部有几个字段,在接收端,对这些字段进行检查,然后指向对应的套接字。

多路分解:将运输层中数据段的数据,交付到正确的套接字的过程

多路复用:从源主机的不同套接字取出,并附加首部信息,传递到网络层的过程

总结:

要求一、套接字有唯一标识符

要求二、每个报文段有特殊字段来表示,要交付字段到哪个套接字

如上图所示:这些特殊的字段被称为:源端口号字段和目的端口号字段,端口号是一个16位的数字,大小在0~65536之间,其中0~1024是特殊端口号,例如,80是http的,21是FTP的

二、UDP协议

建议先看下2.1和2.7.1节 

UDP是无连接的,在数据传输前,发送方和接受方的运输层之间并没有握手,因此UDP被称为无连接的。

1、UDP报文段结构

长度:指示了UDP报文段中的字节数,首部+数据

校验和:用于差错检测 

三、TCP协议

1、三次握手:

第一次:客户端向服务端发送一个特殊TCP报文段,特点:不包含应用层数据,但是在报文段首部中的一个标志位即:SYN被设置1,这个特殊的报文段被称为SYN报文段。另外,客户端会随机选择一个初始序号(client_isn),并存在SYN报文段中,然后将该报文段封装在一个IP数据报中,发送给服务器。

第二次:服务端收到报文段,取出TCP_SYN报文段,为该TCP分配TCP缓存和变量,向该TCP发送允许连接的报文段,特点:不包含应用层数据,SYN位设置1,然后初始序号client_isn+1,然后服务端设置自己的初始序号,sever_isn,表示,服务端收到了连接请求,并允许连接,回应了的服务段的初始序号sever_isn。这个响应报文被称为SYNACK报文段,即SYN ACK Segment。

第三次:客户端收到服务端的SYNACK报文段后,客户端也分配此次连接的缓存和变量,然后客户端向服务端发送另一个报文段,也就是建立完整连接前的最后一个报文段,最后一个报文段对服务器的允许连接报文段进行确认,将server_isn+1,并将SYN位设置为0.本次传输就可以携带应用层数据了。

完成以上三个步骤之后,客户端和服务端就可以相互发送数据的报文段了,在以后每一个报文段中,SYN位置都被置0。

 2、断开的过程:四次挥手

客户端和服务端都可以选择断开,以客户端断开为例

第一步:客户端TCP发送特殊的报文段:FIN标记位设置为1

第二步:服务端收到这个报文段,发送一个确认收到报文段ACK

第三步:服务端发送自己的特殊报文段,FIN也设置为1

第四步:客户端收到服务端的报文段,发送ACK,服务端收到,此时全部断开。

3、TCP报文段结构

MSS:最大报文段长度

TCP报文段由首部字段和一个数据字段组成,数据字段包括应用数据。它的报文段结构如下:

 含义:

  1. 源端口号:来自源主机的端口
  2. 目的端口号:目标主机的端口
  3. 序号:可靠数据传输用,是报文段字节流编号
  4. 确认号:可靠数据传输用,表示自己需要的接收的编号
  5. 首部长度:TCP首部长度可变,表示TCP首部长度
  6. 保留未用:
  7. CWR:在明确拥塞通告中使用
  8. ECE:在明确拥塞通告中使用
  9. URG:未使用
  10. ACK:表示确认字段中的值是否有效
  11. PSH:未使用
  12. RST:连接建立和拆除
  13. SYN:连接建立和拆除
  14. FIN:连接建立和拆除
  15. 接收窗口:
  16. 因特网校验和:
  17. 紧急数据指针:未使用
  18. 选项:
  19. 数据:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值