1 网络协议栈分层
协议栈是指网络中各层协议的总和,反映了一个网络中数据传输的过程,由上层协议到底层协议,使用分层实现提高灵活性以及简化实现。
OSI七层模型 和TCP/IP五层模型:
物理层:考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,尽可能地屏蔽掉不同传输媒体和通信手段的差异
数据链路层:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径
传输层:提供可靠的端到端的差错和流量控制,保证报文的正确传输
应用层:解决某一类应用问题
2 网络中消息传输
2.1 主机间通过路由器等网络设备连接成整个网络拓扑图。
2.2 消息在主机间分层传递
2.3 各层消息包封装
3 TCP/IP协议部分介绍
3.1 以太网协议
3.2 IP协议
3.3 TCP协议
3.3.1 TCP三次握手、四次挥手
3.3.2 TCP慢启动、拥塞控制
3.3.3 TCP滑动窗口
3.3.4 TCP状态迁移图
3.4 ICMP、ARP
Internet Control Message Protocol 网络控制报文协议,网络层的重要协议,主要用来在网络设备间传递各种差错和控制信息。
Address Resolution Protocol 地址解析协议
4 socket网络编程
网路编程仅仅通过操作系统提供的socket API来完成网络通信,开发人员是感知不到数据如何寻址、如何在各层通信,但是掌握这些理论知识是很有必要的。
客户端:socket、connect、send、recv、close、shutdown
服务端:socket、bind、listen、accept、recv、send、close、shutdown