计算机网络的常见问题
OSI七层模型:
OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
每一层的作用如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
TCP和UDP的区别:
1.TCP面向连接,UDP无连接。
2.TCP面向字节流(文件传输),UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对IP电话,实时视频会议等)。
3.TCP首部开销20字节,UDP的首部开销小,只有8个字节。
4.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
5.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
6.TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
TCP如何保证数据的可靠传输的
4种拥塞控制算法:慢启动,拥塞避免,快速重传和快速恢复。
1.针对发送端发出的数据包的确认应答信号ACK、通常将推迟几分之一秒(可能是要对包做完整校验)
2.针对数据包丢失或者出现定时器超时的重发机制、
3.针对数据包到达接收端主机顺序乱掉的顺序控制、对失序数据进行重新排序,然后才交给应用层。
4.针对高效传输数据包的流动窗口控制、
5.针对避免网络拥堵时候的流量控制、
6.针对刚开始启动的时候避免一下子发送大量数据包而导致网络瘫痪的慢启动算法和拥塞控制。
TCP三次握手的过程
ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
SYN:同步序号,用于建立连接过程。
FIN: finish标志,用于释放连接。
三次握手
1.客户端发送确认序号SYN=1,初始序号seq=X的包,连接的服务器的端口。
2.服务端返回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号设置为x+1。并发送一个自己的序列号 y。
3.客户端发送确认包(ACK) SYN标志位为0,ACK标志位为1,并且把服务器发来的 y ,+1 作为确认号发送给对方,且序列号设置为第二次的确认号x+1。
TCP四次挥手
四次挥手
TCP连接是全双工的,因此每个方向都必须单独进行关闭。
1.客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送,并发送一个自己的ISN(u)
2.服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(u+1)。同时发送一个自己的ISN(v)
3.服务器B关闭与客户端A的连接,发送一个FIN、ACK给客户端A,确认号为收到的序号加1(u+1),与上一次不变。同时发送一个自己的ISN(w)
4.客户端A发送ACK报文确认,并将确认序号设置为收到序号加1(w+1),序列号就是上一次的确认号(u+1)
DNS域名系统工作原理
1.查询 浏览器、操作系统 缓存。
2.请求 本地域名服务器
3.本地域名服务器未命中缓存,其请求 根域名服务器。
4.根域名服务器返回所查询域的主域名服务器。(主域名、顶级域名,如com、cn)
5.本地域名服务器请求主域名服务器,获取该域名的 名称服务器(域名注册商的服务器)。
6.本地域名服务器向 名称服务器 请求 域名-IP 映射。
7.缓存解析结果
ARP地址解析协议工作原理
每台主机都有一个ARP列表,存放IP地址和MAC地址的对应关系。
当源主机向目标主机发送数据时,首先查看ARP列表中IP地址对应的目标主机的MAC地址,如果找到则直接发送数据;如果找不到,就向该网段中的所有主机发送ARP请求包,里面存放源IP地址,源MAC地址,目标IP地址。
当该网段中的所有主机收到该ARP响应包之后,首先查看目标ip地址是否与自己相匹配,如果不是则忽略,如果是,就将源ip地址和源MAC地址存放到自己的ARP列表中,然后将自己的MAC地址存放到ARP响应包中发送给源主机;
目标主机收到ARP响应包,则取出对应的IP和MAC地址存放到ARP列表中,并发送数据。若未收到则ARP查询失败。
广播ARP请求,单播ARP响应。
连续ARQ和滑动窗口协议
连续ARQ协议:所谓连续就是在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发若干帧,边发可以边等待确认帧,如果收到了确认帧,又可以继续发送数据帧, 由于减少了等待的时间,利用率就提高了。
但是连续ARQ在收到一个否认帧或超时后,所有该帧后面的帧都要重发而不管该帧后面的帧是否正确传送 于是便有了选择重传ARQ协议。
滑动窗口协议:允许发送方发送多个分组而不需等待确认。(滑动窗口协议是TCP使用的一种流量控制方法,此协议能够加速数据的传输)
HTTP和HTTPS的区别
HTTP协议时超文本传输协议。
HTTPS是安全的超文本传输协议,是安全版的HTTP协议,使用安全套接字层(SSL)进行信息交换。
HTTPS协议主要针对解决HTTP协议以下不足:
1.通信使用明文(不加密),内容可能会被窃听
2.不验证通信方身份,应此可能遭遇伪装
3.无法证明报文的完整性(即准确性),所以可能已遭篡改
HTTP+加密+认证+完整性保护=HTTPS
HTTP端口 80
HTTPS端口443
HTTPS采用对称加密、
SSL位于应用层于传输层TCP之间,原本数据由应用层直接交由传输层处理,现在会经过SSL加密再进行传输。
HTTPS也不是绝对安全的,针对SSL的中间人攻击方式主要有两类,分别是SSL劫持攻击和SSL剥离攻击。
SSL劫持攻击就是 SSL证书欺骗攻击,将自己接入到客户端和目标网站之间; 在传输过程中伪造服务器的证书,将服务器的公钥替换成自己的公钥。
在浏览器中输入url地址->>显示主页的过程
HTTP常见状态码
200 :请求成功,成功返回网页
301 :资源(网页等)被永久转移到其它URL
302 :资源(网页等)被临时转移到其它URL
304 :请求未修改、命中缓存
401 :未授权
403 :服务器拒绝请求
404 :请求的网页或资源不存在
500 :内部服务器错误,无法完成请求
502 :错误网关
503 :请求未完成,服务器临时过载或宕机
504 :网关超时
HTTP的请求和响应
HTTP请求信息由3部分组成:
1. 请求方法(GET/POST)、URI、协议/版本
2. 请求头(Request Header):Content-Type、端口号Host、Cookie
3. 请求正文:包含客户提交的查询字符串信息
请求头和请求正文之间是一个空行
HTTP响应也由3个部分构成:
1.状态行:状态代码及描述 如404、500
2.响应头(Response Header):Content-Type 、Server、Date
3.响应正文:html代码
HTTP请求方法有哪些
IP地址的分类
A类地址(1~126):网络号占前8位,以0开头,主机号占后24位。
B类地址(128~191):网络号占前16位,以10开头,主机号占后16位。
C类地址(192~223):网络号占前24位,以110开头,主机号占后8位。
D类地址(224~239):以1110开头,保留位多播地址。
E类地址(240~255):以1111开头,保留位今后使用。
了解交换机、路由器、网关的概念,并知道各自的用途
交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。用途:人工交换 电路程控 集线比较
路由器:路由器就是连接两个以上个别网络的设备。用途:连通不同的网络 信息传输
网关:又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备.
用途:用于两个高层协议不同的网络互连。