计算机网络模型(三):运输层

计算机网络模型(二):应用层

简介

运输层其实很简单,就两个协议需要我们特别关心,一个是TCP协议,几乎所有的应用层协议都是基于TCP协议的;另一个就是UDP协议,也很重要。一般二者用在不同的场合。

想一下,两台网络主机要想通信,应该怎么办?

运输层提供了解决方法:

  • TCP:建立虚拟链路,消息从这个链路传过去。
  • UDP:构造一个消息包,里面有目的地,每个主机看到这个包就传给下一个离目的主机更近的主机,直到最终主机收到。

TCP

TCP协议就好比火车,乘客就是要传递的信息。火车从上海到北京,路线固定,你不会中途走错路。但是呢,至于火车应该怎么走,那就是很复杂的问题了。

TCP报文格式

请添加图片描述
简单分析一下报文,下面的序号是按行号来的:

  1. 源端口:占16位,2字节,定义了TCP报文(考点,一会说)是从哪个端口传来的。记住是端口不是地址。目的端口:占16位,2字节。
  2. 序号:占32位,4字节,是TCP滑动窗口(考点,一会说)的基础。
  3. 确认号:占32位,4字节,是可靠性保障的基础(考点,一会说)。
  4. 这个比较多,我分条:
    1. 数据偏移:占4位,是指真正的数据到报文头部的距离。但是,4位最多能标识16个数字,而TCP报文头是以4个字节长度为单位的(看图最上部单位),因此16*4=64字节。这就规范了TCP报文头部最多为64字节;
    2. 保留位:目前置0,待日后使用;
    3. URG:紧急报文(说实话我没用过也没见用过);
    4. ACK:确认ACK,只有ACK=1才有效,ACK=0的报文段丢弃;
    5. PSH:推送,该字段置1以后,不经过缓存直接交付(否则为了效率会用缓存先接收);
    6. RST:重置位,当TCP连接出现严重差错,如主机崩溃,会置1,强制断开连接。
    7. SYN:SYN=1,就说明这是申请连接或者接受连接的报文。
    8. FIN:FIN=1,说明发送方数据已经发送完毕,要求释放连接。
    9. 窗口:16位,2字节。告诉发送方,接收方最多能一次性接受多少数据量(一会说)
  5. 校验和:就是通过对首部与正文进行校验判断报文是否被篡改;紧急指针:仅在URG=1的时候有效,指明了紧急数据在报文的位置,之后都是普通报文。
  6. 选项:这部分就是可填充数据,但是全部报文头部不能超过64字节。

TCP三次握手

见文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值