计算机网络总结

五层因特网协议栈(自顶向下):应用层、运输层、网络层、链路层、物理层

每层的数据分组:应用层---->报文  、运输层---->报文段、网络层----->数据报、链路层------>链路层帧、物理层----->比特流

补充:运输层有TCP和UDP协议,而UDP协议只是在网络层的IP协议的基础上实现了数据的进程交付和微量的差错检测功能,所以UDP的分组也可以称为数据报,为了区别统一将运输层的分组称为报文段

  

七层模型(自顶向下):应用层、表示层、会话层、运输层、网络层、链路层、物理层


详细介绍小明新买的笔记本电脑通过网线打开一个网页的过程:

一、获取IP地址

1、首先电脑要先获取IP地址,操作系统生成一个DHCP请求报文(用于获取IP地址),并将该请求报文放入目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段,该UDP报文段被放入一个目的地址为255.255.255.255(网络层广播地址)和源地址为0.0.0.0的IP数据报中,该IP数据报被放入目的MAC地址为FF:FF:FF:FF:FF:FF(链路层广播地址)源MAC地址为小明电脑端口的MAC地址(假设为AA:AA:AA:AA:AA:AA),链路层交换机所有的端口广播该含有DHCP请求的特殊链路层帧(包括与路由器连接的端口),(在链路层帧通过链路层交换机时由于交换机的自学性,已经记住了小明的电脑的MAC地址)路由器在它具有MAC地址为00:22:6B:45:1F:1B的接口收到了包含DHCP请求的链路层广播帧,抽取IP数据报,IP数据报分解取出UDP报文段,DHCP请求从UDP报文段中取出,此时DHCP服务器有了DHCP请求报文

2、DHCP服务器为请求从IP块中(比如68.85.2.0/24)分配IP地址、DNS服务器的IP地址(比如68.87.71.226)、默认网关路由器的IP地址(68.85.2.1)和子网掩码(68.85.2.0/24),DHCP生成包含此信息的DHCP ACK报文,该报文被放入UDP报文段中,UDP报文段被放入IP数据报中、IP数据报放入链路层帧中传送到MAC地址为AA:AA:AA:AA:AA:AA的端口,小明的电脑收到此DHCP ACK 并从中提取相关信息并设置

此时小明的电脑已经具有IP地址、DNS服务器地址、默认网关路由器的IP地址、子网掩码等信息

补充:

动态主机配置协议(DHCP):用于在组织内部分配地址,DHCP允许主机自动获取一个IP地址,管理可配置DHCP给主机分配固定IP还是临时IP
默认网关: 第一跳路由器地址
DHCP工作的四个步骤:给新加入的主机分配地址               
                             1、DHCP服务器发现,使用DHCP发现报文发现与其交互的DHCP服务器,使用广播
                                   目的地址255.255.255.255
                             2、DCHP服务器提供,DHCP服务器收到一个DCHP发现报文时,用一个DCHP提供报文
                                  向用户响应,使用IP广播地址255.255.255.255
                             3、DHCP请求,客户从一个或多个服务器提供中选择一个,并向选中的服务器发送DHCP
                                  请求报文回显配置参数
                             4、DHCP ACK,DHCP服务器用DHCP ACK报文对请求报文进行响应,证实所要求的参
                                  数
IPv4和IPv6的区别:1、IPv4有4个字节、IPv6有16个字节      2、IPv4支持中间路由器的IP数据切片(受最大传输单元的限制)、IPv6不支持中间路由器的数据切片(切片在源和目的地上执行)   3、IPv6舍弃的首部检验和  4、IPv4的首部行为20字节,IPv6的首部行为40字节
MAC地址:设备的物理地址,有6个字节
设备的地址与端口绑定

二、获取需要浏览网址的IP地址
1、小明在浏览器的地址栏中输入www.google.com的URL并按回车键,首先Web浏览器生成了一个TCP套接字(位于应用层和运输层中间的软件接口),用于向www.google,com发送Http请求,但该TCP套接字需要目的地址的IP地址,因此要先获取www.google.com的IP地址,可以通过DNS服务器获取该网站的IP地址,因此操作系统生成了一个DNS查询报文,放置在端口为53的UDP报文段中,该UDP报文段被放入IP目的地址为68.85.71.226(第一步已从DHCP中获取了DNS服务器的IP地址)和源地址为68.85.2.101(DHCP给笔记本分配的IP地址)的IP数据报中,该IP数据报被放入链路层帧中,该帧将被发送到网关路由器(由于已经知知道了默认网关路由器的IP地址,因此可以通过ARP协议获取该路由器的MAC地址,通过链路层广播帧获取),此时包含DNS查询报文的链路层帧已经交付给了网关路由器
2、网关路由器提取包含DNS查询报文的IP数据报,获取目的IP地址(68.87.71.226),并根据转发表选择出口进行转发,最终包含DNS查询报文的UDP报文段到达DNS服务器,DNS服务器提取DNS查询报文并查找www.google.com对应的IP地址(64.233.169.105),DNS服务器将该IP地址放入DNS回答报文,并将DNS回答报文放入目的地址为68.85.2.101的IP数据报中,通过UDP传输到小明所在AS的网关路由器最后传输到小明的电脑上,此时已经可以连接www.google.com的服务器了
补充:
DNS:主要作用是将主机名转换为IP地址(包括主机别名、邮件别名),DNS有三个层次结构:根DNS服务器、顶级DNS服务器(TLD)、权威DNS服务器
各个层次DNS服务器的交互: 1、本地服务器将接受到的请求报文转发给根DNS服务器,
                                              2、根DNS服务器返回给本地DNS服务器负责该域名的TLD的IP地址列表,
                                              3、该本地DNS服务器向TLD服务器之一发送查询报文,TLD服务器返回一个负责该地址的权威DNS 服务器的IP地址
                                              4、本地DNS服务器直接向该权威DNS服务器发送查询报文
 注意:本地的DNS服务器具有缓存功能能够缓存TLD服务器的地址以及权威DNS服务器的地址,这些缓存会定期更新
套接字:位于运输层和应用层中间的软件接口,当套接字从运输层提取数据并向应用层传递时必须是正确的、完整的、有序的数据,每个套接字都有一个端口号,可以有多个线程,当我们访问服务器并请求获取服务时,直接和服务器的欢迎套接字交互,当服务器同意请求时会另外分配一个专用套接字给你,该套接字具有一个专属的端口号,而每个套接字可以有多个线程,比如为了更好的响应用户的请求一个套接字用一个线程处理数据,一个线程用于向客户发送数据
端口号:IP地址的端口号有两字节,16比特的数,端口号和IP地址结合主要用于区分服务,0~1023是周知端口,用于世界周知的的协议
ARP:地址解析协议,主要是将IP地址转换为MAC(物理)地址,每个电子设备都有一个MAC地址,理论上该地址是不能更改的
路由器:路由器由四个部分组成
1、输入端口
2、输出端口
3、交换结构(将输入端和输出端相连传递数据)
4、路由选择处理器,执行路由选择协议和维护转发表等
路由选择协议:
在说路由选择协议之必须要先说明一个概念---AS(自治系统),比如你家小区的几百户用同一个ISP(因特网内容提供商,比如电信、移动等)可能就属于同一个AS,
在一个AS中有两种路由器,一种是与外界通信的路由器(网关路由器)一种是AS内部通信的路由器,这两种路由器具有不同的路由选择协议。
AS内部的路由选择协议:
1、路由选择信息协议(RIP),局部式算法
2、开放最短路径优先(OSPF),全局式算法
选择何种协议有网络管理员决定
AS之间的路由选择协议:BGP(边界网关协议)
主要职能:1、从相邻AS处获得子网可达性信息
            2、向本AS内部的所有路由器传播这些可达性信息
3、基于可达性信息的AS策略,决定到达子网的最优路由

三、与服务器交互:HTTP和TCP
1、小明的电脑已经有了www.google.com的IP地址,生成TCP套接字该套接字向www.google.com发送HTTP GET报文,在发送该报文之前先与服务器进行TCP三次握手建立连接(端口号80),连接建立好后发送HTTP GET报文
2、服务器收到HTTP GET报文请求后从套接字提取报文并生成一个HTTP 响应报文,响应报文通过TCP套接字向下传输,生成TCP报文段,生成IP数据报,生成链路层帧,传输给小明电脑的WEB浏览器,并最终显示网页

补充:
HTTP和HTTPS的区别:http和https的区别是使用的运输层协议不同而已,https使用的是ssl和tcp结合的加密版tcp协议,提
供了数据加密服务,SSL与套接字类似用于数据的加密,技术实现在应用层但它最为运输协议被看待,http则使用的是普通的TCP协议,在网络层中也有加密版的IP协议--->IPsec,而VPN就是使用IPsec技术在公共网上创建的网络(之前一直以为VPN就是用来翻墙的。。。。。)
TCP和UDP的区别(简述):TCP是面向连接的可靠的传输协议提供拥塞控制和流量控制的功能,UDP是尽力交付协议,不提供可靠服务,使用前不必建立连接
流量控制和拥塞控制的区别: 
流量控制:由于接收方缓存不足发送方抑制发送速率,因为TCP的接收方会先将数据放入缓存中(用于向上提供完整,正确的数据),因此TCP通过让发送方维护一个称为接收窗口的变量提供流量控制,指示发送方该接收方还有多少可用的缓存空间(TCP双工通信)
拥塞控制:由于网络拥塞抑制发送方的发送速率,通过拥塞窗口控制,网络拥塞的两种鉴别方式:接收3个冗余的ACK或者定时器超时
TCP的套接字和UDP的套接字的区别:
UDP套接字是由一个二元组来全面识别的(目的IP地址和一个目的端口号);因此,两个UDP报文段有不同源地址或源端口号但有相同的IP地址和目的端口号,那么这两个报文将通过相同的目的套接字 被定向到相同的目的进程
TCP套接字是一个有四元组来识别的(源IP地址、源端口号、目的IP地址、目的端口号)因此,两个具有不同源IP地址或者源端口号的TCP报文段将被定向到不同的套接字,如服务器响应不同端系统的TCP连接请求
TCP的三次握手及缺陷:
1、客户首先发送一个特殊的TCP报文段(不承载有效载荷) SYN报文段,SYN为1,另外客户随机取一个序号
2、服务器提TCP SYN报文段并为该TCP连接分配TCP缓存和变量,用另一个特殊TCP报文段响应(不承载有效载 SYNACK报文段,SYN为1 ,包含随机序号,确认号(客户序号 +1)
3、客户接受到 SYNACK报文段后,为该连接分配缓存和变量,再用第三个特殊报文段响应(承载有效载荷)用于 SYNACK 报文段的确认, SYN为0
缺陷:
SYN洪泛攻击(只发送第一次握手的请求不进行第三次握手的确认),防范措施:SYN cookie,如果接收到的SYN报文来自较早连接的一个SYN报文
段的旧副本,TCP连接的服务器一侧不会接受该连接
为什么不是TCP两次握手或者四次握手?

答:如果是两次,客户向服务器申请建立连接,服务器同意并发给客户一个允许连接的报文段,结果丢失了,则无法建立连接。四次则是因为没有必要
TCP关闭连接(四次握手):
1、客户TCP向服务器发送一条特殊报文段, FIN 为1
2、服务器收到后向客户发送一条确认报文;
3、服务器发送它自己的终止报文, FIN 为1
4、客户发送确认报文。

内容分发网(CDN): CDN服务器主要用于分发视频,即多媒体页面(视频以及WEB内容),CDN通过拦截DNS请求转到CDN服务器地址进行视频的分发(现在迅雷会员卖不动了就在搞这个东西)

















  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值