网络标识关系、Socket通信与UDP数据报首部介绍

文章目录

一、网络通信标识的关系

1.主机<->IP

2.主机<->进程

3.进程<->程序

4.端口<->socket

4.1端口

4.1.1端口号

4.2socket

4.2.1TCP的ServerSocket

4.2.1.1新socket

4.2.2UDP的DatagramSocket

4.3关系

二、UDP数据报的首部

1.源端口

2.目的端口

3.长度

3.1界限

3.1.1在传输层:

3.1.2到网络层:

3.2传递

3.2.1UDP整传

3.2.1.1传输层过大报错:

3.2.1.2IP层过大切片:

TCP流传

4.校验和


一、网络通信标识的关系

1.主机<->IP

一台主机可以有 指向同台主机的多个不同IP

2.主机<->进程

一台主机上可以运行多个进程

3.进程<->程序

每个进程对应一个程序

4.端口<->socket

4.1端口

端口是主机的操作系统网络层 对外暴露 的网络服务入口

4.1.1端口号

端口号是占2个字节 大小的 16位无符号整数 ,范围在0~65535:

  • 0~1023:知名端口,行业默认预留 给 实现HTTP、FTP、SSH知名协议功能 使用的通信端口
  • 1024~49151:注册端口
  • 49152~65535:动态/私有端口,客户端 常用 操作系统自动随机分配的临时端口 作源端口

4.2socket

socket是在程序里 伸入操作系统网络层 占用端口 进行通信的端点

4.2.1TCP的ServerSocket

ServerSocket绑定一个端口 调用accept 监听和接待 多个客户端来的新连接,返回 出一个个 同时与每个客户端长期通信的新socket

4.2.1.1新socket

共用ServerSocket的服务器端口 靠更完整的连接标识来区分不同的TCP连接:

  1. 服务器IP
  2. 服务器端口
  3. 客户端IP
  4. 客户端端口
  5. 协议类型
4.2.2UDP的DatagramSocket

DatagramSocket绑定一个端口 没有建立与客户端的连接 直接面对不同客户端发来的数据报

4.3关系

(1)一个socket 只能在绑定一个端口

(2)一个程序里可以创建多个socket 绑定不同端口 扩多分隔的通信:

  • 8080业务端口 负责业务请求
  • 9090管理端口 负责管理命令
  • 1000调试端口 负责调试、状态查询、健康检查

(3++)同台主机 、同种传输协议 、同个本地IP 才是同一个的本地端口++ 同一时刻只能被一个socket独占绑定

二、UDP数据报的首部

UDP首部固定8个字节,分成4个字段,每个字段2字节:

1.源端口

源数据用来让对方回复锁定的

2.目的端口

3.长度

3.1界限

3.1.1在传输层:

2字节16位无符号整数 的数值 ,字节 的单位 -> 表示++整个UDP数据报的长度 在8~65535字节++ 之间、++UDP数据报的载荷 最大65527字节++

3.1.2到网络层:

IP包总长度最大65535字节 ,IP首部至少20字节 -> IP包里,++UDP数据报的长度 最大65515字节++ 、++UDP数据报的有效载荷 最大65507字节++

3.2传递

3.2.1UDP整传

传输层UDP面向数据报 上下发接 自带消息边界的完整消息

-> 应用层向下send的应用层数据包** 完整拼接作载荷** 、传输层向下层传输层 完整发送UDP数据报:

3.2.1.1传输层过大报错:

应用层数据包超过65527 字节,导致传输层UDP拼接后的数据报 超过最大的65535 字节,系统会因为过大而报错 发不下去

3.2.1.2IP层过大切片:

应用层数据包在(65507~65527] 字节之间,在传输层UDP数据报能发下去 ,但在IP层拼接后 会超过IP包最大的65535 字节,IP包会把大IP包切成多个IP分片 传输

TCP流传

TCP面向字节流 上下接触 连续无边界字节流,由底层自动切成TCP报文段 去发接流

4.校验和

  1. UDP按照协议规定算法 对UDP首部、UDP数据、IP层伪首部 算出一个16位结果 放入校验和字段的2字节中
  2. 对方再按协议相同算法 对接收数据计算校验和 检查数据在传输过程中是否损坏
相关推荐
花间相见7 小时前
【计算基础|网络14】网络层:IP、ICMP 与 ping
网络·网络协议·tcp/ip
半杯咖啡半行码9 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
智能直播9 小时前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
睿智の男孩10 小时前
MIG IP核对DDR3的输出时序分析记录
网络·网络协议·tcp/ip
艾芯微科技10 小时前
高充放电流锂电充放 SoC:ETA9885E10,便携储能、小移动电源 BOM 选型笔记
网络·单片机·嵌入式硬件·集成测试·51单片机
2401_8685347810 小时前
数据交换方式
服务器·网络
艾芯微科技10 小时前
钰泰 ETA6973PQ3Y|QFN3×3 2A 同步降压 Buck,I2C 可配置多档输出,动态调压 PMIC
网络·单片机·嵌入式硬件·fpga开发·集成测试·51单片机
默|笙10 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp
2401_8685347811 小时前
以太网物理层标准
服务器·网络