网络标识关系、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. 对方再按协议相同算法 对接收数据计算校验和 检查数据在传输过程中是否损坏
相关推荐
默|笙1 小时前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(中):全量响应实现和测试
网络·c++·语言模型·chatgpt
幻智星科技2 小时前
FPGA数据采集接口选型终极指南
fpga开发·udp·硬件架构
无言听风雨丶3 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
SDWAN_Cheap4 小时前
BGP是什么,广播IP是什么?两个容易混淆的概念拆解
网络·tcp/ip·bgp·广播ip
程序员JerrySUN4 小时前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络
guizhoumen4 小时前
net core下WebSocket请求总是断开的解决方案
网络·websocket·网络协议
HKT_China4 小时前
香港电讯河套区创新科技中心暨AI机楼揭幕,以网络基建助力北部都会区发展
网络·ai
云边云科技_云网融合5 小时前
案例分享 | 某运动零售品牌多云治理实战:一套框架解决权限失控、网络混乱与成本黑箱
网络·零售
Liuqy-055 小时前
IO模型与并发服务器
服务器·网络·select·多线程·epoll·并发服务器·io多路复用