Linux 网络编程笔记(1)——TCP / IP 基础

时间:2021-07-20 02:11:05
  • ISO / OSI 参考模型
  • TCP / IP 四层模型
  • 基本概念(对等通信、封装、分用、端口)
作用 传输单位 作用
应用层 提供应用程序间通信 application PDU 与应用程序界面沟通,以达到展示给用户的目的
表示 处理数据格式、数据加密等 presentation PDU 对网络传输的数据进行变换(压缩加密的)
会话层 建立维护和管理绘画 session PDU 管理主机之间会话过程
传输层 建立端到端连接 segment 提供可靠的数据传输服务
网络层 寻址和路由选择 packge(分组)俗称包 将各个子网的数据进行路由选择,分组与重组
数据链路层 介质访问、链路管理 提供可靠的数据传输服务
物理层 比特流传输 比特 定义电子及物理设备规范,为上层传输提供物理介质
  • 通信的前提是使用一致的协议
  • 每一层协议的头部,都有一个字段说明了他的上一层使用了什么协议,根据这个字段,解封时 把数据分给特定的上一层,这就是分用。
  • 端口
    • 众所周知端口(Well Know Ports):0 ~ 1023,由IANA分配,通常这些端口的通信表明了某种服务的协议,如 21 端口为 ftp 服务端口。
    • 注册端口(Registered Ports):1025 ~ 49151。不受 IANA 控制,但由 IANA 登记并提供使用清单
    • 动态或私有或临时端口(Dynamic or Private Ports):49152 ~ 65535。IANA 不管这些端口。实际上机器充 1024 起分配端口。

socket 编程

  • socket 可以看作是用户进程与内核网络协议栈的编程接口
  • 既可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信