传输层(一)概述

内容根据哈工大-李全龙、聂兰顺老师-计算机网络课程总结整理

1.提供的服务
发送方:接受上层协议调用,将报文分成多个报文段(segment),添加控制信息然后交给网络层;多路复用。
接收方:从接收到的报文段中提取出数据,交付上层协议;多路分用。

一个协议可能对应多个上层协议或实体,比如tcp上层有http、smtp。假如主机上同时有两个报文段交给了传输层,需要发送出去。传输层协议会为两个报文的报文段加上控制信息,指明发送方和接收方。这叫做多路复用,同时接收方将来自不同发送方的消息区分开,交给不同的上层协议,叫做多路分用。

2.Internet中,传输层主要有两种协议(还有一些其他的,比如google研究的QUID)
UDP user datagram protocol 用户数据报协议
TCP transmission control protocol 传输控制协议

下面总结两种协议

3.UDP
udp只做了两件事情

  • 一是分用和复用:上层协议将报文交给udp后,udp将其分成多个段,加上发送方和接收方的消息,交给网络层,接收方再根据接收端口将数据导向指定端口。
  • 二是提供了一个简单的检错码(称校验和,checksum):接收方可以根据这个检测传输过程中是否发生了错误。
    具体做法是,将数据分成一个个的16bit的整数,然后每个整数相加,如果高位有溢出,将溢出的数再加到末尾,这一过程称为回卷,最后再取反码。比如:
    1111 0010 1011 1100
    1010 0101 0000 0001
    取和,高位溢出了一个1:
    11001 0111 1011 1101
    将溢出的1回卷:
    1001 0111 1011 1101
    0000 0000 0000 0001
    得到:
    1001 0111 1011 1110
    再取反:
    0110 1000 0100 0001
    所以原始数据
    1111 0010 1011 1100 1010 0101 0000 0001
    的校验和为:
    0110 1000 0100 0001

这种检测码在检测出错误时,说明一定发生了错误,但是发生了错误,并不是一定能检测出来。假如原始数据中两个16bit的整数的首位,本来第一个是1,一个是0,变为了一个是0,一个是1,得到的校验和居然是一样的。

UDP提供的是一种“尽力而为”的服务,在发送前也不建立连接,只管发数据,并不关心对方是否收到甚至对方是否存在。

UDP的报文段格式也很简单

UDP报文段格式

4.TCP
tcp远比udp复杂,发送正式数据前,双方要建立连接(互相确定对方的存在)。然后再发送数据,提供的是一种可靠传输服务。tcp的几个特点是:可靠数据传输、流量控制、拥塞控制。详细内容在下面展开:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 重点部分: 掌握Internet的传输层协议: UDP:无连接传输服务 TCP: 面向连接的传输服务 TCP拥塞控...
    桔子满地阅读 990评论 0 0
  • 3.1传输层服务 3.1.1传输层服务概述 传输层服务和协议 ■传输层协议为运行在不同Host上的进程提供了一种逻...
    龟龟51阅读 817评论 0 0
  • 1.传输层的服务和协议 上下文:上层应用层,下层网络层。传输层的作用是实现进程间的逻辑通信。收到来自应用层的消息将...
    壹零二肆阅读 760评论 0 1
  • 目录 多路复用/分用 可靠数据传输机制 流量控制机制 拥塞控制机制 udp : 无连接传输服务 tcp : 面向连...
    西部小笼包阅读 548评论 0 0
  • 可靠数据传输原理 可靠数据传输原理的实现问题不仅出现在运输层,也会出现在链路层和应用层,如果要确定所有网络中最为重...
    YAN_DAOJIANG阅读 1,629评论 0 0

友情链接更多精彩内容