linux/unix系统编程手册——socket学习笔记2

  1. TCP/IP 协议套件是一个分层联网协议(联网协议:定义信息如何在网络上传输的一组规则),各层的实现方法(用代码)称为"协议栈";
  2. “封装” 是分层联网协议的重要原则!上层信息下发,下层只是加入自己帧头,没有解析其他额外动作,下层信息上传,会被上层解析;
    linux/unix系统编程手册——socket学习笔记2_第1张图片linux/unix系统编程手册——socket学习笔记2_第2张图片
  3. 数据链路层处于最底层(设备驱动和网络通信物理介质,如:网线),所有通信细节均由硬件驱动负责,将大的数据包切割成"帧"单元,其中一个重要指标是MTU(最大传输单元),该层所能传输帧大小的上限(netstat -i命令查看);
    在这里插入图片描述
  4. 网络层:IP,目前通用协议版本:IPV4,向下:上层数据切割小单方便装进链路层,向上:获取网上数据,为传输层提供服务。 IP以数据包方式作数据传送,报头包含目标与源地址。报文有长度限制,IPv4限制65535字节,IPv6限制65575字节;
  5. IP是一种无连接协议,不保证消息到达目标的顺序以及内容的重复,甚至是否被接收到,可靠性是基于传输层协议(如:TCP);
  6. IPv4地址分为:32bit网络地址,32bit网络掩码,网络地址最后8bit范围0~255,除0和255外,其他由用户自由分配!0:网络本身标识,255:子网络广播地址。IPv4特殊地址:127.0.0.1定义为回环地址,常分配给主机名localhost,C程序定义INADDR_LOOPBACK,
    INADDR_ANY是IPv4的通配地址,表示一台主机可以接收到多台其他IP主机消息;
  7. 传输层——端口号:一个16位的整数来区分主机上的应用程序,通过/proc/sys/net/ipv4$ cat ip_local_port_range 来查看端口号范围。TCP 协议会将用户数据拆成段,每段包含校验和,每段用单个IP数据报来传输。TCP 具备ACK和重传机制;
  8. TCP 具有流量和拥塞控制机制,可以防止发送方速度大于接收方时将整个通讯网络压垮。

你可能感兴趣的:(linux)