就很杂很乱

  • send,sendto,sendmsg调用的系统函数都是sock_sendmsg. 而且用的较多的send调用sendto,内核代码sys_sendto(fd,buf,len,flags,NULL,0);
  • ARP(地址解析)协议通过广播的方式获得对应IP的MAC地址。首先查询本地的IP-MAC映射表缓存,不存在则发送ARP协议广播包(目的地址全1),局域网内的主机收到消息,判断IP地址是否与自己的IP地址相符,不相符则丢弃,相符组织响应ARP包回复给发送ARP广播的主机。该主机收到回复后将IP—MAC添加至ARP缓存,但每一项的生存时间一般为20min。因为IP地址实在不断变化的。
  • RARP(反向地址解析)协议。用于解决设备不知道自己的IP地址,无法产生ARP广播和响应。通过MAC地址得到IP地址。发出广播消息,但只有规定的RARP服务器可以产生应答.
  • bind函数的端口号。struct sockaddr saddr.sin_port =0//函数会自动选择一个未被使用的端口。saddr.sin_addr.s_addr = INADDR_ANY;//系统自动填入本机IP地址。
  • TCP数据报文格式:16位源端口号,16位目的端口号,32序列号TCP对每个字节进行计数,32位确认序列号(期望收到的下一个序号),4位头部长度度,6位标志位(URG-紧急指针是否有效,ACK-确认号是否有效,PSH-提示接收端将缓冲区的数据读走,RST-重新连接,SYN-连接请求,FIN-连接断开请求),16位窗口大小,16位校验和,16位紧急指针;一般20字节,没有40字节可选选项的话。最常见的可选选项是MSS,会在建立连接时表明自己能够接受的最大长度的报文段。
  • IP数据包格式:4位版本,4位头部长度(单位是4B),8位服务类型(四位可用,代表最小时延,最大吞吐量,最可靠,最小费用),16位数据包总大小,16位标识(如果IP的数据包在数据链路层被分片了,则每个分片中的标识都一样),8位TTL报文的路由跳数,32位源地址32位目的地址,16位校验码用于CRC校验。一般20字节,不包含可选选项。
  • TCP的listen函数底层有两个队列,接受队列,已连接队列;接受队列保存新的连接请求,他们等待服务端accept函数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值