1. TCP/IP理论基础
TCP/IP协议族是一个四层协议系统,分别是应用层、传输层、网络层、网络接口。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。
应用层
TFTP、FTP、Telnet、DNS
传输层
TCP、UDP
网际层
ICMP、IP、ARP、RARP
网络接口
FDDI、PDN、PPP、IEEE 802.1A、IEEE 802.2
TCP:TCP是重要的传输层协议,目的是允许数据同网络上的其他节点进行可靠的交换。它能提供端口编号的译码,以识别主机的应用程序,而且完成数据的可靠传输TCP 协议具有严格的内装差错检验算法确保数据的完整性TCP 是面向字节的顺序协议,这意味着包内的每个字节被分配一个顺序编号,并分配给每包一个顺序编号
UDP:UDP也是传输层协议,它是无连接的,不可靠的传输服务.当接收数据时它不向发送方提供确认信息,它不提供输入包的顺序,如果出现丢失包或重份包的情况,也不会向发送方发出差错报文.由于它执行功能时具有较低的开销,因而执行速度比TCP快
TCP与UDP的比较
TCP:一种可靠的、面向连接的和基于流的服务
UDP:不可靠、无连接和基于数据报的服务
TCP:一对一的
UDP:适用广播和多播
TCP:执行速度慢
UDP:执行速度快
2. socket
Linux中的网络编程通过socket(套接字)接口实现,socket是一种文件描述符。
进行Socket编程的常用函数有:
socket:创建一个socket
bind:用于绑定IP地址和端口号到socket
connect:该函数用于绑定之后的client端与服务器建立连接
listen:设置能处理的最大连接要求,Listen()并未开始接收连线,只是设置socket为listen模式。
accept:用来接受socket连接。
send:发送数据
recv:接收数据