【计算机网络】传输层——传输层概念&UDP协议

传输层概述

image-20240315223812716

主要学TCP和UDP协议,为应用层提供通信服务,使用网络层的服务

image-20240315223858229

只有主机才有的层次(路由器到网络层就没了)

传输层功能

  • 1.提供进程与进程之间的通信

  • 2.复用和分用

  • 3.传输层对收到的报文进行差错检测。

  • 4.传输层的两种协议。

TCP UDP差异

面向连接的传输控制协议TCP

传送数据之前必须建立连接,数据传送结束后要释放连接。

不提供广播或多播服务。

由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。

可靠,面向连接,时延大,适用于大文件。

无连接的用户数据报UDP

无连接的用户数据报协议UDP传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。

不可靠,无连接,时延小,适用于小文件。

传输层的寻址与端口

复用和分用

复用:应用层所有的应用进程都可以通过传输层再传输到网络层。

分用:传输层从网络层收到数据后交付指明的应用进程。

端口

端口:是传输层的SAP,标识主机中的应用进程。

有逻辑端口。软件端口

端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。

端口号长度为16bit,能表示65536个不同的端口号。

端口分类

image-20240315224557756

常用的熟知端口号

image-20240315224637693

套接字

在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。

image-20240315224724163

用户数据报协议UDP

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。

UDP的主要特点:

1.UDP是无连接的,减少开销和发送数据之前的时延。

2.UDP使用最大努力交付,即不保证可靠交付。

3.UDP是面向报文的,适合一次性传输少量数据的网络应用。

​ 什么叫面向报文?应用层给UDP多长的报文, UDP就照样发送,即一次发一个完整报文,不能过大也不能过小。

image-20240315224942586

4.UDP无拥塞控制,适合很多实时应用。

5.UDP首部开销小,UDP:8B,TCP:20B。

UDP首部格式

image-20240315225124820

UDP长度:UDP用户数据报的整个长度。

UDP检验和:检测整个UDP数据报是否有错,错就丢弃

分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。

UDP校验

伪首部

在UDP数据报之前,会加一个伪首部,模仿的是IP首部

伪首部只有在计算检验和时才出现,不向下传送也不向上递交。

image-20240315225210031

伪首部:前两个字段是地址。第三个字段固定位0,。

第四个字段17:封装UDP报文的IP数据报首部协议字段是17。

第五个字段UDP长度:UDP首部8B,加上数据部分长度(不包括伪首部)。

校验过程

image-20240315225424647

首先把这个加上伪首部的UDP数据报,写成一个个16位的数

在发送端:

1.填上伪首部

2.全0填充检验和字段

3.全0填充数据部分(UDP数据报要看成许多4B的字串接起来)

4.伪首部+首部+数据部分采用二进制反码求和

5.把和求反码填入检验和字段

6.去掉伪首部,发送

在接收端

1.填上伪首部

2.伪首部+首部+数据部分采用二进制反码求和

3.结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。

posted @   晓梦ペ  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示