TCP
当面试官问你关于TCP的时候,这两词一定要答出来:
1、面向连接的
2、可靠的传输
什么是连接?
双方进行了三次握手,建立资源,有了资源了,比如双方开辟了内存缓冲区,数据结构什么的 才叫连接
为什么握手是三次?
首先通信是双向的,比如客户端会有输入流和输出流,客户端发一个,人家基于我发的这个给个确认,我客户端是明确输入输出都没问题,但是客户端只是接收到了输入流是ok的,至于输出流,是未知的,需要在客户端确认之后给服务端回一个包,这个包回来之后他才知道输出对于服务端来说也是通的,所以说三次握手,机制就叫确认机制。
四次挥手,为什么要关闭,为什么是四次,断开资源连接
资源是有限的,不关闭就会有消耗,双方释放资源
三次握手好比结婚,四次挥手好比离婚,都是需要双方同意的
比如一方说想要分手,finish,这个时候另一方可以理你也可以不理你,这时候他说了“哼”表示我听到了你说分手这句话,这时候如果理你并且同意分手单独给你发一个包,这时候你很高兴,给他发一个好好好,为什么要4次挥手结束,是为了不让对方随意的释放资源,要慎重,就好比最新婚姻法还有30天冷静期呢。
socket
套接字,这个“套”很重要,想描述套接字,必须给出4个维度
客户端的ip+port对应到服务端的ip+port
ip是为了找到主机 /电脑
port是为了找到哪一个进程或者程序
唯一表示了两个程序之间的通信
port:
操作系统可以分配的端口号是多少个?65535!
如果控制数量不超过65535个 那么每一个客户端对应的都是唯一的。
如果超过还能不能和别的服务器建立连接?
可以!因为ip会变
IP
分成两个东西组成:
网络号、主机号
每层都有协议和表
路由表
两个局域网之间想要通信,需要一个桥,所以每个局域网只需要记录这个桥就好了
链路层
链路层解决最近的一个通信,ip是解决两个端点的通信
你的数据包,包含s端的ip和路由的mac地址,路由收到之后看到mac地址是我自己的,但是ip不是,就把mac地址撕毁,找自己的路由表,再封一个数据包,mac地址就是ISP运营商,运营商找到mac地址是他自己的,就把这一层撕毁再封装对应的包,找他自己的mac地址,扔给对应的服务器,整个过程就会保证数据端点的正确性,包每跳跃一次,都会拆包、封包,给下一个接力棒者
未完。。待续。。
如有错误,请指正
网友评论