重读UNIX网络编程第二章笔记修正

为加深理解, 故本章老笔记内容大幅删减重写.
第二章重点如下 :

  • TCP (Transmission Control Protocol)传输控制协议. 特性如下 :
    • 面向连接
    • 全双工
    • 可靠, 关心确认/超时/重传等, 保证顺序
    • 流量控制
    • 字节流, 没有任何记录边界
  • UDP (User Datagram Protocol)用户数据报协议. 特性如下 :
    • 无连接
    • 不可靠, 不保证顺序/是否到达/是否重复
    • 每个数据报都有一个长度
  • TCP三路握手(three-way handshake)
    TCP三路握手图

  • TCP选项 :

    • MSS选项 发送SYN的TCP一端使用本选项通告对端他的最大分节大小(maximum segment size)
    • 窗口规模选项
    • 时间戳选项, 对于高速网络连接是必要的.
  • TCP连接终止 :
    TCP连接终止图

  • TCP状态转换图
    TCP状态转换图

  • TCP连接的分组交换
    TCP连接的分组交换图

  • TIME_WAIT状态存在的理由 :

    • 可靠地实现TCP全双工连接的终止
    • 允许老的重复分节在网络中消逝
  • 分节是TCP传递给IP的数据单元
  • Linux下面一共有65535个端口
    • 其中1–1023是系统保留的,
    • 1024–65535是供用户使用的。
    • 0到1024是众所周知的端口(知名端口,常用于系统服务等,例如http服务的端口号是80)。个人写的应用程序,尽量不要使用0到1024之间的端口号。
  • 套接字对是一个定义该连接的两个端点的四元组:
    • 本地IP地址
    • 本地TCP端口号
    • 外地IP地址
    • 外地TCP端口号
  • 缓冲区大小及限制
    • IPv4数据报的最大大小为65535字节, 因为其总长度字段占据16位
    • 以太网的MTU是1500字节,
    • IPv4要求的最小链路MTU是68字节, 这允许最大的IPv4首部(包括20字节的固定长度部分和最多40字节的选项部分)拼接最小的片段
    • 在两个主机之间的路径中最小的MTU成为路径MTU
    • 当一个IP数据报将从某个接口送出时, 如果他的大小超过相应链路的MTU, IPv4和IPv6都将执行分片
    • IPv4首部的”不分片(don’t fragment)”位(即DF位)若被设置, 那么不管是发送这些数据报的主机还是转发他们的路由器, 都不允许对他们分片
    • IPv4和IPv6都定义了最小重组缓冲区大小(minimum reassembly buffersize), IPv4的主机要求不能超过576字节的数据, 所以很多使用UDP的IPv4应用(如DNS)都避免产生大于这个大小的数据报
    • MSS : TCP最大分节大小, 在以太网中使用IPv4的MSS值为1460(以太网的MTU - IPv4首部 - TCP首部 = 1500 - 20 - 20)
  • TCP输出示意图 :
    TCP输出示意图
  • UDP输出示意图 (因为UDP是不可靠的, 他不必保存应用进程数据的一个副本, 因此无需一个真正的发送缓冲区, 所以为虚线框):
    UDP输出示意图
  • 常见因特网应用所使用的协议
    • ping : ICMP
    • DNS : UDP、TCP
    • DHCP : UDP
    • SSH : TCP
    • FTP : TCP
    • HTTP : TCP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值