2012年1月7日
摘要: 从connect开始,就涉及到各种各样的协议了,目前先把TCP/IP协议理清。首先,先把TCP(transmit control protocol, 传输控制协议)的结构图跟结构体对上:#define HEADER_SIZE 64 /* maximum header size */struct tcphdr {/*tcp头部*//*发送端端口号:16 比特标识该数据包源端数据发送进程。*/ __u16 source;/*目的端端口号:16 比特标识该数据包目的端数据接收进程。*/ __u16 dest;/*序列号:32比特本端发送的数据包中所包含数据的第一个字节的序列号。*/ __u32 se 阅读全文
posted @ 2012-01-07 15:38 image eye 阅读(1217) 评论(0) 推荐(0) 编辑
摘要: 我们的应用程序在调用了socket()函数,bind()函数之后,只是在本地创建了socket结构体,sock结构体,并把socket,sock这两个结构体跟I节点,文件句柄结合起来,在把socket创建时所指定的协议的操作集关联到sock结构体上,用于在socket指定了协议之后,使用这个操作集来完成相关的操作;之后的bind()函数则把本地的一个未被使用的端口号(一般大于1024,因为0~1024是知名端口号,保留下来做已知的特定用途,如端口号不是营养程序指定的,则查找空闲的端口号比较烦),用于表示当前sock所属的进程,并把本地的IP跟绑定到sock上,用于表示数据将从哪里被发送到网络上 阅读全文
posted @ 2012-01-07 09:56 image eye 阅读(810) 评论(0) 推荐(0) 编辑