TCP/IP网络编程基础与TCP协议详解
一、TCP/IP简介
TCP/IP主要有两个目的:一是识别网络中的节点(IP),二是传输数据(TCP)。结合广域网(WAN)和局域网(LAN)等网络类型,我们可以推导出当前互联网上正在使用的协议指标。
从软件工程的角度来看,网络栈是一个软件模块,而协议是它的子模块。从网络通信的角度而言,协议定义了一系列规则,使发送方和接收方能够相互通信。
网络栈是分层设计的,每层都有其通用目的。TCP/IP栈的层次如下:
1. 物理层
2. 以太网层
3. IP层
4. 传输层
5. 应用层
每层可能包含一个或多个协议,协议定义了实现该层目的的具体方式。例如,在第2层,ARP负责节点识别,以太网负责数据包传输;第3层只有IP协议,用于广域网中的节点识别;第4层的TCP和UDP是广域网中数据包传输的主要协议,但它们实现数据传输的方式截然不同。TCP尽力按顺序以流的方式传输数据包,同时考虑网络拥塞和丢包时的重传;而UDP则尽力发送数据包,不保证可靠性。
由于UDP看似不可靠,它一直被可靠的TCP所掩盖。然而,UDP的优点是性能开销小,多年来,业界一直在探索如何利用UDP实现可靠连接,同时比TCP占用更少的系统资源。
第2 - 4层是通用层,在此基础上,第5层(应用层)呈现出极大的多样性。重要的应用层协议包括:
- HTTP:基于TCP,用于在服务器和Web浏览器之间传输基于文本的数据,因其简单性,是最常用的协议之一,不仅用于Web,还用于许多应用程序。
- DNS:基于UDP,提供域名到IP地址的转换。
- SSH:基于
超级会员免费看
订阅专栏 解锁全文
38万+

被折叠的 条评论
为什么被折叠?



