网络协议是在内核中实现的,socket是对tcp/ip协议的系统调用,提供以下两点功能:
1. 将应用撑血数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区,以交付内核发送来的数据(比如send),或者从内核TCP/UDP接受缓冲区中复制到用户缓冲区,以读取数据
2. 应用程序通过它们来修改内核中各层协议的某些头部信息或其他数据结构,从而精细地控制底层通信行为,比如setsockopt函数来设置ip数据包在网络上的存活时间
查看arp高速缓存 arp -a
删除arp缓存 arp -d ip地址
查看路由表 route
修改路由表 route add …… route del ……
icmp重定向报名也能用于更新路由表
TCP服务是基于流的,UDP是基于数据报的服务。每个UDP数据报都有一个长度。这种区别对应到实际编程中,体现为通信双方是否必须执行相同次数的读写操作
TCP发送端应用程序连续执行多次写操作时,先放入发送缓冲区,发送缓冲区等待发送的数据被封装成一个或多个TCP报文段发出;接收端放入接收缓冲区,应用程序可以一次全部读出,也可以分多次读取
UDP 发送端应用程序每执行一次写操作,UDP模块就将其封装成一个UDP数据报并发送之。接收端必须及时对每一个UDP数据报执行读操作
TCP状态