网络通信

计算机网络

2020-07-28  本文已影响0人  jeason22

计算机网络体系结构 通信协议七层

  1. 物理层:
    中继器、集线器
  2. 数据链路层:
  1. 网络层:具体功能包括寻址和路由选择、连接的建立、保持和终止等。
  1. 传输层:
  1. 会话层
  1. 表示层
  1. 应用层

会话层、表示层和应用层重点:

什么是子网掩码?

TCP三次握手建立和四次握手断开

HTTP 协议包括哪些请求?

  1. Get是从服务器上获取数据,Post是向服务器传送数据。
  2. Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。
  3. Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。
  4. 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

在浏览器中输入 www.baidu.com 后执行的全部过程

现在假设如果我们在客户端(客户端)浏览器中输入http://www.baidu.com,而baidu.com为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作:

1)客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

2)在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3)客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4)客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

计算机网络

各层协议
应用层
域名系统DNS
例:某用户通过主机A浏览西安交大的主页 www.xjtu.edu.cn

  1. A向本地域名服务器DNS查询
  2. 如果DNS上有www.xjtu.edu.cn的记录,就立即返回IP地址给主机A
  3. 如果DNS上没有该域名记录,则DNS向根域名服务器发出查询请求
  4. 根域名服务器把负责cn域的顶级域名服务器B的IP地址告诉DNS
  5. DNS向B查询获得二级域名服务器C的IP地址,最终迭代查询到www.xjtu.edu.cn的ip直接返回DNS
    HTTP
    请求报文
    常用的 HTTP 请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;
    GET:当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。
    POST:当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;
    请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
    User-Agent:产生请求的浏览器类型;
    Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ / ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
    Accept-Language:客户端可接受的自然语言;
    Accept-Encoding:客户端可接受的编码压缩格式;
    Accept-Charset:可接受的应答的字符集;
    Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
    connection:连接方式(close 或 keepalive);
    Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;

1. Http1.1与Http1.0的区别

http1.0使用非持久连接(短连接),而http1.1默认是持久连接(长连接),当然也可以配置成非持久连接。

TCP的三次握手

客户端TCP向服务端TCP发送一个特殊的TCP报文段,不包含应用层数据,报文中SYN=1,设置一个初始号client_isn,记录在报文段的序列号seq中。
SYN报文段到达服务器后,为该TCP链接分配缓存和变量,并向客户端发送允许链接的报文段。其中,SYN = 1, ACK = client_isn+1,seq = server_isn;
客户端收到允许连接的报文后,客户端也给连接分配缓存和变量,客户端向服务端发送一个报文段,其中ACK = server_isn+1,SYN = 0,并且由于连接已经建立所以现在可以携带应用层数据。

TCP四次挥手

  1. 客户端发送连接释放报文段,报文中FIN = 1, seq = u;
  2. 服务端接收到连接释放报文后发出确认报文,其中ACK = 1; seq = v; ack = u + 1;
  3. 服务端在发送完数据后,发送连接释放报文FIN = 1, seq = w, ack = u + 1;并停止向客户端发送数据。
  4. 客户端收到连接释放报文后,发送确认报文, ACK = 1; seq = u + 1; ack = w + 1;并且进入等待2MSL,防止服务端没有接收到确认报文,重传报文。并且使连接产生的报文都消失。
  1. 服务器读通道关闭
  2. 客户机写通道关闭
  3. 客户机读通道关闭
  4. 服务器写通道关闭

IP

IP地址分类:

上一篇 下一篇

猜你喜欢

热点阅读