Linux作为一个开源操作系统,其网络协议栈扮演着至关重要的角色,负责处理网络数据的传输、路由、连接管理等功能。本文将介绍Linux协议栈中常见的一些网络协议及其功能,并附上具体的代码示例。
- TCP协议
TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输协议。它提供了数据完整性校验、流量控制、拥塞控制等功能,保证数据的可靠传输。
下面是一个简单的使用TCP协议进行客户端与服务器通信的示例:
// TCP client
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
int main() {
int sockfd;
struct sockaddr_in server_addr;
char buffer[1024];
sockfd = socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8080);
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr));
send(sockfd, "Hello, server!", strlen("Hello, server!"), 0);
recv(sockfd, buffer, sizeof(buffer), 0);
printf("%s
", buffer);
close(sockfd);
return 0;
}




