欢迎光临
我们一直在努力

网络标识关系、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连接

  • 服务器IP
  • 服务器端口
  • 客户端IP
  • 客户端端口
  • 协议类型
  • 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.校验和

  • UDP按照协议规定算法 对UDP首部、UDP数据、IP层伪首部 算出一个16位结果 放入校验和字段的2字节
  • 对方再按协议相同算法 对接收数据计算校验和 检查数据在传输过程中是否损坏
  • 赞(0)
    未经允许不得转载:171主机测评 » 网络标识关系、Socket通信与UDP数据报首部介绍
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址