Linux高性能服务器编程(第一篇)——阅读笔记

Linux高性能服务器编程(第一篇 TCP/IP协议详解)


第一章 TCP/IP协议族

1. TCP/IP协议族体系结构及主要协议

  • TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层
    TCP/IP协议族体系结构及主要协议
    • 数据链路层:处理数据在物理媒介上的传输,实现了IP和MAC地址的相互转换
    • 网络层:实现数据包的选路和转发
    • 传输层:为两台主机提供端到端的通信
    • 应用层:
      传输层和网络层的区别

2. 封装

封装
在这里插入图片描述

3. 分用

分用

5. ARP协议工作原理

主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址,此网络上的其它机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址。

6. DNS工作原理

7. socket和TCP/IP协议族的关系

socket是操作系统向应用程序提供的一套通用网络编程接口:将应用程序数据从用户缓冲区复制到TCP/UDP内核发送缓冲区;从内核TCP/UDP缓冲区中复制数据到用户缓冲区;修改内核中各层协议的某些头部信息或其它数据结构。


第2章 IP协议详解

1. IP服务的特点

  • 无状态:简单高效
  • 无连接:每次都要指定对方IP地址
  • 不可靠:只承诺尽最大努力

2. IPv4头部结构

IPv4头部结构

3. IP分片

  • IP报文的长度超过以太网帧的MTU时,将被分片传输。

4. IP路由

IP模块基本工作流程


第3章 TCP协议详解

1. TCP服务的特点

  • 面向连接:通信双方必须先建立连接才能开始数据读写,双方都要为该连接分配内核资源;全双工
  • 字节流
  • 可靠传输:发送应答机制,发送端发送的每个 TCP 报文段都必须得到接收方的应答,才认为传输成功。另外,TCP采用超时重传机制,一个报文发出后启动定时器,定时间内没有收到应答则重新发送。由于IP报文可能乱序、重复,TCP协议还会对收到的TCP报文段重排整理。

2. TCP头部结构

TCP头部结构

3. TCP连接的建立和关闭

TCP连接的简历和关闭时序图
报文5、6可以合并成一个,但是有可能存在半关闭状态,不能合并报文。发送FIN表示自己不再发送数据,但可以接收数据。
半关闭状态

4. TCP状态转移

TCP状态转移过程
TCP连接的建立和断开过程中客户端和服务器的状态变化

5. 复位报文段

通知对方关闭或重新建立连接

  • 访问不存在的端口,或端口处于TIME_WAIT状态
  • 异常终止连接
  • 处理半打开连接

6. TCP交互数据流

  • 交互数据:包含很少字节,实时性要求高,例如Telnet

解决交互数据流中由于网络延迟导致的报文段数据过多、进而导致网络拥塞问题,使用Nagle算法:通信双方在任意时刻最多只能发送一个未被确认的TCP报文段,得到确认前不发送其它TCP报文段;等待确认时收集需要发送的微量数据,下次一起发出。极大减少了网络上微小TCP报文段的数量。

7. TCP成块数据流

  • 成块数据:长度一般是TCP报文最大长度,传输效率高,例如FTP

8. 带外数据

  • 带外数据Out Of Band:立即发送、高优先级

9. TCP超时重传

  • 超时重传:每个TCP报文段都维护一个重传定时器,超时重传,多次重传失败后由IP和ARP接管

10. 拥塞控制

  • 拥塞控制:提高网络利用率,降低丢包率,保证数据流公平性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值