TCP/IP课程自学笔记
前言
该笔记作为本人对大三第一学期的TCP/IP课程复习内容的基本梳理,所用参考书为清华大学出版社的《TCP/IP协议族》(第四版)以及原版英文教材《TCP/IP Protocol Suite 4ED》
第一部分:引言和底层技术
第1章:引言
协议:用以管理通信的一组规则(三要素:语法、语义、时序)
- 语法:数据的结构或格式,数据呈现的顺序
- 语义:每一段比特流分别表示什么意思
- 时序:
- 数据应当在何时发送出去
- 数据能够以多快的速度发送的
第2章:OSI模型和TCP/IP协议族
发送方的每一层都要使用下一层所提供的服务
每对相邻的层之间有一个接口(interface),每个接口都定义了该层必须向它的上层提供什么样的信息和服务
OSI模型:PL-DLL-NL-TL-SL-PL-AL
TCP/IP协议族:PL-DLL-NL-TL-AL
通信单位(每层):比特(PL)→帧(TTL)→数据报(NL)→报文段/用户数据报/分组(TL)→报文(AL)
第3章:底层技术
第二部分:网络层
第4章:网络层简介
电路交换:在报文传递之前,该报文的源点和终点之间先要建立链路连接。然后完整的、没有被分割成分组的报文从源点发送到终点
分组交换:源点在传送之前将报文分割成便于管理的分组,到达终点后被重新组装
- 数据报
- 虚电路
无连接服务:转发判决的依据是该分组的目的地址
面向连接的服务:分组包含源地址、目的地址以及流标号(虚电路标识符)
源计算机提供的服务:分组化处理→查找下一跳的逻辑地址→查找下一跳的MAC地址→分片
各路由器提供的服务:检查数据报有效性→查找下一跳的逻辑地址→查找下一跳的MAC地址→分片(If Possible)
目的计算机提供的服务:检查数据报有效性→重组
差错控制:对损坏、丢失以及重复的数据报进行检测
流量控制:调整源点发送的数据量以免接收方超载
拥塞控制
第5章:IPv4地址
第6章:IP分组的交付和转发
直接交付:分组的终点是一台与交付者连接在同一个网络上的主机
- 分组的源点和终点在同一个物理网络上
- 最后一个路由器与目的主机之间进行交付
间接交付:目的主机与交付者不在同一个网络上
- 无论多少次间接交付,最后的交付一定是直接交付
基于目的地址的转发
下一跳方法:路由表中只保留下一跳的地址
特定网络方法:把连接在同一个网络上的所有主机看成是一个表项
特定主机方法:在路由表中给出目的主机的地址
默认方法:添加一个默认路由表项
基于标签的转发
MPLS(多协议标签交换):
一个新的首部:将IPv4分组封装在一个MPLS分组中,完整的IP分组作为净负荷被封装到一个MPLS分组中,并附加上MPLS
多级交换:MPLS的首部由标记堆栈组成,使得多级交换成为可能
第7章:网际协议版本4(IPv4)
第8章:地址解析协议(ARP)
-
ARP Request采用广播发送
-
ARP Response采用单播发送
第9章:网际控制报文协议(ICMP)
5种差错控制报文
- 终点不可达
- 源点抑制
- 超时
- 参数问题
- 改变路由
2种查询报文
- 回送请求或回答
- 时间戳请求或回答
两种排错工具:Ping&Traceroute
第10章:移动IP
第11章:单播路由选择协议(RIP、OSPF和BGP)
距离向量路由选择(Bellman-Ford)
如果结点 i i i的所有邻站都知道到结点 j j j的最短距离,那么求结点 i i i和结点 j j j之间的最短距离就可以用结点 i i i到每个邻站之间的距离分别加上该邻站到结点 j j j的最短距离,然后再从得数中选择最小的一个
链路状态路由选择(Dijkstra)
- 初始化:选择作为树的根的结点,并把它加到路径中。为根的所有邻站设置最短距离,并设计根到自己的最短距离为零
- 循环以下两个步骤:
- 加入下一个结点到路径中:寻找不在路径中的结点,选择一个具有最小的最短距离的结点,把它加入路径中
- 更新:用刚才移到路径中的结点来更新所有剩余结点的最短距离
路径向量路由协议
第12章:多播和多播路由选择协议
第三部分:运输层
第13章:运输层简介
- 提供进程到进程的通信,负责把报文交付给合适的进程
第14章:用户数据报协议(UDP)
- 进程把已预先定义好边界的报文发送给UDP以便进行交付
- UDP对每个报文都添加上自己的首部,然后再把它们传递给IP来传输
第15章:传输控制协议(TCP)
- TCP是面向字节的协议
- 允许发送进程以字节流的形式来传递数据,也允许接收进程把数据作为字节流来接收
第16章:流控制传输协议(SCTP)
- SCTP是面向报文的协议
- 结合了UDP和TCP的优点