
网络应用层编程入门
网络应用层编程涉及通信路径、协议类型及服务接口。通信路径包括单工、半双工和全双工。丢包由信号干扰或拥塞引起。协议分为 UDP(不可靠、数据包)和 TCP(可靠、字节流)。服务接口通过 Socket 文件与 API 实现,如 Java 中的 DatagramSocket 和 DatagramPacket。

网络应用层编程涉及通信路径、协议类型及服务接口。通信路径包括单工、半双工和全双工。丢包由信号干扰或拥塞引起。协议分为 UDP(不可靠、数据包)和 TCP(可靠、字节流)。服务接口通过 Socket 文件与 API 实现,如 Java 中的 DatagramSocket 和 DatagramPacket。



写的代码 100% 都是应用层,网络操作并不是跟随数据包随层部署执行的,而是始终站全局能跃层部署执行的。
一条单向固定通道,永远只能某向通信。
一条双向互通通道,一时间只能在进行一向通信。
两条互逆的单向固定通道,可以同时进行双向通信。
物理信号干扰篡改、设备转发上限或接收方处理不过来的数据转接拥塞丢弃造成数据混乱就是丢包。
面向 DatagramPacket 的通信。
面向数据包 Packet 单位。
四元组:源 + 目的 IP,源 + 目的端口号存储在 DatagramPacket 对象里面。
DatagramPacket 操作它包对象里面存储的通信标识。
UDP 头部的校验和计算发现丢包后结束丢弃数据包。
UDP 无视数据转接时的拥塞状态始终以恒定速率发包不管丢弃。
面向 Socket 的通信。
面向字节流 Stream 单位。
五元组:源 + 目的 IP,源 + 目的端口号,协议号、序列号、对方接收窗口大小存储在内核内存中的 TCB 结构体里面。
Socket 存的文件描述符 fd 交由内核操作对应 TCB 里面存储的通信标识。
TCP 头部的校验和计算发现丢包后接收方丢弃数据包、不发回复 ACK 直到发送方等待超时后重发新包。
TCP 会缩小发送窗口来降低发送速率以减少丢弃。
网络协议栈中,下层都会为上层提供服务接口。
操作系统把传输层及以下层的硬件抽象成 Socket 文件,传输层把 Socket 文件交应用层,给针对指向。
DatagramPacket 是网卡接手的压缩五层网络数据的快递包裹,里面填写有:
| 源 IP | 本机站点地址 |
|---|---|
| 目的 IP | 对机站点地址 |
| 源端口 | 本机存储单类货物间的入门号 |
| 目的端口 | 对机存储单类货物间的入门号 |
DatagramSocket 是运输货物系统,在构造时搭起在源端口号的本机货物房间。
操作系统把传输层及以下层的内核操作封装成 Socket API,传输层把 Socket API 交应用层,给指挥执行:
应用层代码调用 Socket API 时会触发程序中断,执行权限从应用层的用户态转变成操作系统的内核态执行传输层及以下层的内核操作。
能看见自己主机端口分布的服务器适合自定义选择端口号搭起,在指定源端口搭起本机货物房间开启运输货物系统。
未探明用户主机端口分布的客户端适合由操作系统随机分配空闲端口号搭起,在随机空闲源端口搭起本机货物房间开启运输货物系统。
运输系统接收二进制数据覆进网卡数据包,接收为空则进入阻塞等待。
运输系统发送网卡数据包里的二进制数据。
构造五层压缩的网卡数据包,指定字节数组起始 + 长度部分为应用层数据包、目的 IP、目的端口号。
网卡数据包获取里面的字节数组形式的应用层数据包。
网卡数据包获取里面的字节数组形式的应用层数据包的字节长度。
网卡数据包获取里面的源 IP。
网卡数据包获取里面的目的 IP。
网卡数据包获取里面的源端口。
网卡数据包获取里面的目的端口。
网卡数据包获取里面的目的 IP+ 目的端口。
转化


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online