2.1 出现背景
2.2 标准化 RFC
2.3 互联网基本知识
互联网进行通信时使用的协议就是TCP/IP通信协议。
互联网中的每个网络都是由骨干网和末端网组成的,每个网络之间通过NOC(网络交换中心)相连。
ISP和局域网:连接互联网需要向ISP或区域网提出申请。
2.4 TCP/IP 协议分层模型
TCP/IP分五层,与OSI分层对应关系:应用层(OSI应用层、表示层、会话层)、传输层(OSI传输层)、互联网层(OSI网络层)、网卡层(OSI数据链路层)、硬件(OSI物理层)
1)硬件/物理层
物理层设备,电缆、电话线等。
2)网络接口层(数据链路层)
利用以太网中的数据链路层进行通信,因此属于接口层。也就是说把它当做让NIC起作用的“驱动程序”也无妨。
互联设备之间识别和传输数据帧。集线器、中继器、网桥(2层交换机)中有地址转发表。
2.2.4 互联网层(网络层)
使用IP协议。IP协议基于IP地址转发分包数据。
地址管理与路由选择。
TCP/IP分层中的互联网层与传输层的功能通常是由操作系统提供的。尤其是路由器,它必须得实现通过互联网层转发分组数据包的功能。
此外,连接互联网的所有主机和路由器都必须实现IP的功能。
该层的协议主要有IP、ICMP、ARP、RARP:
IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。期间使用IP地址作为主机的标识。IP还隐含着数据链路层的功能。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能实现通信。虽然IP也是分组交换的一种协议,但是它不具备重发机制,属于不可靠传输协议。
ICMP:IP数据包在发送途中一旦发生异常导致无法到达目标地址时,需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。路由器中的路由表更新也采用ICMP报文,路由器主动发出的一般是ICMP报文。ping使用的也是ICMP报文。
ARP:从分组数据包的IP地址中解析出物理地址MAC地址的一种协议。
RARP:从物理地址解析出IP地址。
2.4.5 传输层
传输层最主要的功能就是能够让应用程序之间实现通信。需要使用到端口号识别特定程序。主要有TCP和UDP。
TCP是一种面向连接的传输层协议。它保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况/此外TCP还能有效利用带宽,缓解网络拥堵。然而为了建立和断开连接,有时它需要至少7次的发包收包,导致网络流量的浪费。此外,为了提高网络的利用率,TCP协议中定义了各种各样复杂的规范,因此不利于视频会议。
UDP是一种面向无连接的传输层协议。UDP不会关注对端是否真的收到了传送过去的数据,如果需要检查对端是否接收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。
2.4.6 应用层(会话层以上的分层)
具体的应用程序协议。
WWW(HTTP属于OSI应用层的协议、HTML属于表示层的协议)、SMTP、FTP、远程登录(TELNET和SSH)
2.5 TCP/IP分层模型与通信示例
2.5.1 数据包首部
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。从上一分层收到的包全部都被认为是本层的数据。
术语:包可用于所有层数据;帧用于数据链路层包的单位;数据包是IP和UDP使用的包的单位;段是TCP数据流中的信息;消息是指应用协议中数据的单位。
2.5.2 发送数据包
应用程序处理(编码、在发送的那一刻建立TCP连接)->TCP模块的处理(建立连接、发送数据、提供可靠性、断开连接、TCP首部源端口号目的端口号序号校验和)->IP模块的处理(加上IP首部接收端IP地址发送端IP地址还有判断传输层协议的信息,IP包生成后由路由控制表决定接受此IP包的路由或主机,然后将包给连接这些路由器或主机网络接口的驱动程序,ARP查询MAC)->网络接口即以太网驱动的处理(加以太网首部,包含接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据协议)。
2.5.3 经过数据链路的包
分组数据包流动时,从前往后依次被附加了以太网包首部、IP包首部、TCP包首部(或UDP包首部)以及应用自己的包首部和数据。而包的最后则追加了以太网包尾。
每个包首部至少包含两个信息:发送端和接收端地址、上一层的协议类型。