一、tcp与udp协议
tcp协议是可靠协议:
对方必须回复一个ack确认信息,才会将自己这端的数据存内存中删除;
udp协议不可靠:
发送一条信息就会立即删除,不管对方是否接收到
tcp有链接,udp无链接
传输效率:udp高,没有建链接,不需要等对方回复
粘包问题:tcp协议niger算法
udp协议称之为数据报协议(发的每段数据都是一段完整的数据包)
tcp协议:不是 一个send对应一个recv
udp协议:是 一个send唯一对应一个recv
二、上网通信流程
三次握手:建立链接
四次挥手:断开链接
ARP 算两个目标地址不一样 原目标地址,网关的目标地址之间匹配 交换机:二层,三层 设备:比如七层设备 交换机广播: 从老师复习上节课第13mins开始听 数据链路层:对电信号进行分组 头 的特点:固定长度 自定义协议:应该分: 头(固定长度) 数据(对数据的描述信息),,每台机器都有一个网卡 一组数据称之为数据帧 一个IP地址匹配一。。。。。 本质是软件的通讯 端口号:从0-65535 0-1024被系统占用,其余大众用 从三层结构来讲:让操作系统调用网卡往外发数据 三次握手:第二次即使请求又是确认,减少IO延迟 TCP协议(好人协议): syn=1变量包 ack=1确认包 syn=1变量包 ack=1确认包 syn洪水攻击:黑客模拟syn大量发送请求,然后不确认,导致这段时间占用对方操作系统资源 序号:seq=一串数字 seq=一串数字+1 确认 seq=另一串数字 seq=另一串数字+1 命令:netstat -an|grep 80 大量状态是 SYN_RCVD:可能被SYN洪水攻击 TCP协议可靠是因为:ACK确认 UDP协议:不需要建链接,发完数据立马删掉,UDP的包如果丢了就真丢了。可以在软件层面解决。 通常用于查询 客户端在什么时候断开 链接: 客户端把数据发完 客户端发FIN=1服务端返回ACK=1 建立链接是为了铺路,断开链接是为了把管子回收,管子里可能还有水
三握手:没数据产生,只是为了铺路,建好双向通道,三次是以最快的速度建好链接,多一次请求的话会增加时间
SYN_RCVD半链接状态
tcp协议是传输层,为了传送应用程的数据,tcp本身有数据产生
四次挥手:客户端把数据发完后告诉服务端已发完链接,服务端收到后确认,当
半链接池:有5个syn请求,后面的就进不来了,转圈是在等待处理请求
服务器高并发情况下会有大量的time_wait状态的优化方法
URL地址:域名背后对应的就是IP地址 浏览器默认用80端口 三部分组成: http:// ip地址(mac地址自动会被解析):80 文件路径 上网流程: tcp协议,先建链接,获取 面试问: DNS查询步骤:
-----30-----