套接字
https://www.cnblogs.com/lixiaoliuer/p/6543968.html
不会阻塞的函数不阻塞bind和listen。
TCP和UDP的区别:
1)TCP提供面向连接的传输,通信前要先建立连接(三次握手机制);UDP提供无连接的传输,通信前不需要建立连接。
2)TCP提供可靠的传输(有序,无差错,不丢失,不重复);UDP提供不可靠的传输。
3)TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。
4)TCP提供拥塞控制和流量控制机制;UDP不提供拥塞控制和流量控制机制。
简述 TCP/IP 四层协议
应用层决定这次通信的应用类型,比如说FTP、DNS、SMTP等等,同时HTTP协议也属于应用层的范围。通俗来讲,应用层决定这一次通信要干嘛。
传输层:传输层提供两台计算机之间的数据传输,传输层中包含着两个很叼的协议,分别是TCP和UDP协议。面试中经常提及的三次握手,四次挥手就是TCP协议的部分内容
网络层:网络层则是用来处理这些流动的数据包,也就是如果把相应的数据包路由到指定的地点,为通信时的网络传输选择传输路线
数据链路层:数据链路层包含了软件与硬件的接口部分,以及各种网络设备的硬件,也就是整个网络通信过程中最底层的基础设施
OSI七层
https://www.cnblogs.com/qishui/p/5428938.html
TCP的三次握手与四次挥手
https://blog.youkuaiyun.com/qq_38950316/article/details/81087809
是否可以两次握手
有哪些协议是 tcp 或 udp 实现的,举例说明
TCP应用(1)FTP:文件传输协议;(2)SSH:安全登录、文件传送(SCP)和端口重定向;(3)Telnet:不安全的文本传送;(4)SMTP:简单邮件传输协议Simple Mail Transfer Protocol (E-mail);(5)HTTP:超文本传送协议 (WWW);(6)DNS都有
UDP应用:(1)流媒体;(2)NTP是用来使计算机时间同步化;(3)DHCP:动态主机配置协议,动态配置IP地址;(4)DNS都有
tcp可靠性传输如何实现
(1)确认应答机制(ACK):TCP将每个字节的数据都有序列号。确认序号=序号+1。(2)超时重传机制: 。(3)链接管理:tcp链接需要三次握手,简历可靠链接。(4)流量控制:。(5)拥塞控制:。
TCP超时与重传机制
其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送数据的ACK确认报文,则对该报文进行重传,在达到一定次数还没有成功时放弃并发送一个复位信号。
超时的时间设定不宜过大也不易过小,根据网络中的RTT(传输往返时间)来自适应调整的。
路由器与交换机
路由器工作在网络层,依靠ip,交换机工作在链路层依靠mac。
https://blog.youkuaiyun.com/baidu_32045201/article/details/78305586
TCP和UDP端口号
tcp和udp可以使用相同的port号且tcp和udp可以同时使用相同的port号
但一台设备里,tcp协议里port号必须有唯一性。同样,udp协议里port号必须有唯一性。
OS接收到报文后,根据IP字段里面的内容可以区分出是什么协议报文。然后根据不同协议,就如不同的协议栈处理,同一个协议栈里port号,必须是唯一的。
ARP
arp提供从网络地址(IP)到相关硬件地址(mac)的动态映射。arp缓存未接口维护最新的映射关系。
当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。