摘要:1.原始套接字的用处 使用原始套接字可以构造或读取网际层及其以上报文。 具体来说,可以构造 ICMP, IGMP 协议报文,通过开启 IP_HDRINCL 套接字选项,进而自定义 IPv4首部。 2. 创建原始套接字 2.1 使用 SOCK_RAW 创建原始套接字 sockfd = socket(A
阅读全文
摘要:1.概述 UDP和原始套接字支持广播 广播的用处: (1)客户端确定服务器位于本子网内时,使用广播探测服务器 (2)服务器广播发送信息给本子网内客户端,以减少网络上分组。 常见使用广播的程序: DHCP,ARP,RIP 2.广播地址 广播地址有两种: (1)子网定向广播地址:{子网,-1},192.
阅读全文
摘要:1.套接字超时 套接字IO函数设置超时的方法有三种: (1)调用alarm。 (2)select (3)使用SO_RECTIMEO和 SO_SNDTIMEO 选项 上面三种方法适用于输入输出操作(read , write, sendto , recvfrom ..) (1)(2)适用于所有文件描述符
阅读全文
摘要:1. 守护进程的启动方法 (1)系统初始化脚本启动,在系统启动阶段,按照如/etc目录或/etc/rc开头的目录中的某些脚本启动,这些守护进程一开始就有超级用户权限。如inetd,cron,Web服务器 (2)由inetd超级服务器启动。inetd监听网络请求(FTP,Telnet..),每当一个请
阅读全文
摘要:1.域名系统 程序中只使用主机名和服务名的好处是,如果IP或端口变化,只需要改变映射关系,不需要重新编译程序。 1.1 资源记录 DNS的条目为资源记录,有用的项如下: A IPv4地址 AAAA IPv6地址 CNAME 规范名字 如: ftp.unpbook.com 的 CNAME 为 linu
阅读全文
摘要:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); struct timeval { long tv_sec; /* seconds */ long
阅读全文
摘要:tcpser void str_echo(int sockfd) { long arg1, arg2; ssize_t n; char line[MAXLINE]; for ( ; ; ) { if ( (n = Readline(sockfd, line, MAXLINE)) == 0) // 当
阅读全文
摘要:1.socket 函数 首先被调用的函数,用于选择通信协议。 socket调用成功后,得到的套接字为主动套接字CLOSED状态。 PF 和 AF 的关系 PF的是协议族,AF是地址族,理论上一个PF包括多个AF,但实际上一个PF只实现了一个AF,所以两者在编程上是同等的。 2.connect con
阅读全文
摘要:1.套接字结构 多数套接字函数都有套接字结构参数,每个协议族都定义了自己的套接字结构,以 sockaddr_ 开始,并对应协议族的唯一后缀。 struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_por
阅读全文
摘要:1.端口号 端口号用于区分使用相同协议的进程。 TCP69 与 UDP69 是不同的。 端口号范围 0 - 65535, 其中 0- 1023 是保留端口。 2.套接字对 TCP服务通过套接字对,唯一识别进程。 如上,服务器fork后,两个子进程都 bind 了 12.106.32.254:21,那
阅读全文
摘要:状态可以用 netstat 验证 加粗线为 数据交换。 可以看出,TCP在 建立连接和 关闭连接,耗费资源, 因为UDP只需要两次数据通信即可。 但UDP没有可靠传输,和流量控制。 上面协商的MSS为,两者最小值,即小于536 注释: MSS时SYN的一个选项,用于告诉对方 它的最大分节大小,即在本
阅读全文
摘要:1.握手 说明: 下面涉及 FIN,SYN,ACK之类数据时,都是由TCP服务收发, 涉及 accept, listen 之类api,都是 应用进程 完成。 都统一使用 客户端,服务端描述,请自行分辨。 (1)首先描述下3次握手,TCP协议做了什么。 客户端,主动打开,发送自己的序列号SYNj,并期
阅读全文
摘要:1.为什么要了解协议 程序员与协议合作,完成应用。 了解协议是为了了解协议完成了什么,提供了什么服务,自己还应该做什么。 2.从协议的角度,套接字是什么 套接字是协议的接口, IP套接字,代表可使用IP协议服务。 TCP套接字,代表可使用TCP协议服务。 3.对编程而言,UDP协议应该了解什么 (1
阅读全文