Linux网络TCPIP开发

xiaoxiao2025-06-10  26

网络OSI(7层协议): 物理层 数据链路层:单个链路上如何传输数据。这些协议与被讨论的各种介质有关。 网络层 传输层:TCP / UDP 会话层 表示层 应用层:FTP HTTP

TCP的三次握手(SYN:同步序列编号(Synchronize Sequence Numbers),ACK:确认字符(Acknowledgement)。 第一次握手:客户端发送SYN包给服务器,进入SYN_SENT状态,等待服务器回复。 第二次握手:服务器收到客户端的SYN包后,组合ACK包(ACK=客户端SYN+1),然后服务器将自己的SYN号+ACK包一起发给客户端,此时服务器进入SYN_RECV状态。 第三次握手:客户端收到服务器的SYN+ACK包后,向服务器发送ACK包(服务器SYN+1)。发送后,服务器与客户端进入链接状态。

总结:1.客户端发SYN给服务器。       2.服务器发客户端SYN+1和服务器SYN。       3.客户端发服务器SYN+1给服务器

Socket: Socket是应用层与TCP/IP协议族通信的中间软件抽象层,相当于库的形式提供给开发人员。 Socket其实就是将复杂的TCP/IP协议族隐藏在Socket接口后面,开发人员只需要使用简单的接口,其余的让Socket去组织数据,以符合指定的协议。 目前大多数平台的tcp和udp的应用开发均基于socket接口实现。

tcp协议和udp协议的差别               TCP               UDP  是否连接     面向连接   面向非连接  传输可靠性     可靠      不可靠  应用场合    传输大量数据  少量数据  速度          慢          快

创建udp和tcp: int sock_udp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); int sock_tcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

转载请注明原文地址: https://www.6miu.com/read-5031606.html

最新回复(0)