传输层

负责数据能够从发送端传输接收端.

端口号

  1. 端口号(Port)标识了一个主机上进行通信的不同的应用程序;
  2. 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过 netstat -n查看);
  3. 一个端口只能被一个进程占用,一个进程可以使用多个端口

端口号范围划分

  1. 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的.
  2. 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的

查看知名端口

cat /etc/services

两个问题

  1. 一个进程是否可以bind多个端口号?
    可以
    因为一个进程可以打开多个文件描述符,而每个文件描述符都对应一个端口号,所以一个进程可以绑定多个端口号
  2. 一个端口号是否可以被多个进程bind?
    不可以

UDP协议

UDP协议格式

udp协议字段:

16位源端口,16位目的端口:负责端与端之间传输
16位校验和:验证数据的完整一致性(二进制反码求和)
16位udp数据报总长度:udp数据报总长度的存储只有16位,意味着一个包含有头部信息的udp数据报最大长度=65535字节,意味着如果发送的数据长度大于65535-8大小,则这个数据需要用户在应用层进行数据分段;因为udp不会在传输层自动进行数据分段

注意
  1. 16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的大长度;
  2. 如果校验和(二进制反码求和)出错, 就会直接丢弃;

UDP的特点

UDP传输的过程类似于寄信.

  1. 无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;
  2. 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层 返回任何错误信息,没有粘包问题;
  3. 面向数据报: 不能够灵活的控制读写数据的次数和数量,数据只能整条整条的交付给应用层
  4. udp不保证数据报的有序到达,需要用户在应用层进行包序管理

面向数据报

应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并
例如:
如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个 字节; 而不能循环调用10次recvfrom, 每次接收10个字节;

UDP的缓冲区

  1. UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后 续的传输动作
  2. UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果 缓冲区满了, 再到达的UDP数据就会被丢弃

UDP的socket既能读, 也能写, 这个概念叫做 全双工

UDP使用注意事项

  1. , UDP协议首部中有一个16位的大长度. 也就是说一个UDP能传输的数据大长度是64K(包含UDP首 部).
  2. 64K在当今的互联网环境下, 是一个非常小的数字. 如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装;

基于UDP的应用层协议

  1. NFS: 网络文件系统
  2. TFTP: 简单文件传输协议
  3. DHCP: 动态主机配置协议
  4. BOOTP: 启动协议(用于无盘设备启动)
  5. DNS: 域名解析协议
  6. 。。。。。。

网络基础2-2(传输层,端口,详谈UDP)相关推荐

  1. 网络编程_1(网络基础+跨主机传输)

    一.网络基础 知识点回顾: 同一主机间的进程通讯方式: 1.无名管道(亲缘关系间的通讯,固定的读端和写端) 2.有名管道(半双工(因为文件可见,可再次打开交换读端写端),非亲缘关系) 3.信号 4.共 ...

  2. 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层

    # 第三章 传输层 ![transport](./img/transport.png) 一,传输层的基本服务 1. 传输层功能 传输层的核心人物是为<font color = 'red'> ...

  3. 传输层端口号的范围是多少?被分为哪两部分_6.传输层协议

    前言 传输层定义了主机应用程序之间端到端的连通性.传输层中最为常见的两个协议分别是传输控制协议TCP ( Transmission Control Protocol )和用户数据包协议UDP ( Us ...

  4. 8月11日 网工学习 APR协议 传输层协议 TCP UDP 数据封装转发全过程

    目录 APR协议 传输层协议 TCP UDP 数据封装转发全过程 APR协议 作用:将IP地址解析为MAC地址 ARP的主要内容 在ARP高速缓存表中查找目的IP地址对应的MAC地址 广播发送ARP请 ...

  5. 传输层端口、TCP和UDP的概念

    端口 端口号用来识别同一台计算机中进行通信的不同应用程序. 端口用一个16位端口号进行标志.端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程. 简单来说 客户机上运行着多个应用进程, ...

  6. 网络基础之OSI七层参考模型与TCP/IP五层模型

    目录 一.网络基础 ①什么是网络 ②网络类型 二.OSI七层参考模型 与TCP/IP五层 ①为什么分层 ②对比图 ③每层作用 ④每层常用设备及常用协议 ⑤路由器交换机介绍 ⑥常用协议介绍 三.数据封装 ...

  7. 网络基础和网络设备传输流程(广域网数据传输流程)

    目录 一.IP网络基础 1.IP地址和MAC地址 [1]IP地址 [2]MAC地址 [3]一跳一跳的网络数据传输 [4]IP地址和MAC地址的区别 2.子网掩码 3.网络设备及相关技术 [1]集线器: ...

  8. 【计算机网络】传输层 : 总结 ( TCP / UDP 协议 | 寻址与端口 | UDP 协议 | TCP 协议特点 | TCP 连接释放 | TCP 流量控制 | TCP 拥塞控制 ) ★★★

    文章目录 一.传输层 TCP / UDP 协议 ★ 二.寻址端口号 ★ 三.UDP 协议特点 四.UDP 协议首部格式 五.UDP 校验 六.TCP 协议 特点 ★ 七.TCP 报文段首部格式 八.T ...

  9. (chap1 web网络基础) TCP/IP协议层

    1. HTTP( HyperText Transfer Protocol) 超文本传输协议 2. TCP/IP协议层 应用层 应用层决定了向用户提供应用服务时通信的活动. TCP/P协议族内预存了各类 ...

最新文章

  1. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )
  2. 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
  3. 使用IAR开发CC2530遇到的两个问题
  4. win下python2,3和pip2,3双版本共存
  5. 第十篇 PO核心功能及流程详解
  6. Exchange2003-2010迁移系列之十一,Exchange2010 OWA配置
  7. python 日志 logging模块(详细解析)
  8. vue与外部html通信,VUE页面实现加载外部HTML方法
  9. 【转】:TCP/IP详解学习笔记系列
  10. 大数据分析技术架构的通用模块
  11. 扒皮 || 优衣库X KAWS凭什么会被疯抢??!!!
  12. C#中TransactionScope的使用小结
  13. 读心术之我知采购心,来看我猜的准不准
  14. Writeback和Writethrough区别
  15. C语言入门 | c语言基础知识
  16. 洗稿,技术上怎么判断文章相似性?
  17. JPEG2000压缩DICOM文件的解压(一)
  18. 干货 || 如何在考博英语中拿高分
  19. 避免后台进程被杀死的几种方法
  20. LSP(Layered Service Provider)入门的基础知识概念

热门文章

  1. IDEA插件之 CodeGlance
  2. HTML音乐标签和滚动
  3. rlwrap插件,实现sqlplus上下翻页
  4. apache服务器配置Net的实践
  5. 检查MySQL主从数据一致性
  6. JavascriptDOM(三)
  7. Ubuntu下将Sublime Text设置为默认编辑器
  8. Jquery对复选框的操作
  9. 布里斯托大学计算机科学专业排名,2021年布里斯托大学世界及专业排名 多个领域位居全英前十!...
  10. java怎样访问servlet_如何访问URL并从java servlet获取响应?