• 网络基础 TCP/IP


      通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作的,而 HTTP 属于它内部的一个子集

      不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)

      TCP/IP 是互联网相关的各类协议族的总称

      TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。
    1)应用层:决定了向用户提供应用服务时通信的活动。它包括了FTP文件传输协议(File Transfer Protocol),DNS域名系统服务(Domain Name System),HTTP协议也处于该层
    2)传输层:对上层应用层,提供处于网络连接中两台计算机之间的数据传输,包含有TCP传输控制协议(Transmission Control Protocol)和UDP用户数据报协议(User Data Protocol)
    3)网络层(网络互连层):用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过的路径(传输路线)到达对方计算机,并把数据包传送给对方
    4)链路层(数据链路层、网络接口层):处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、NIC网络适配器即网卡(Network Interface Card),及光纤等物理可见部分(包括连接器等一切传输媒介)

      利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端每通过一层增加首部,接收端每通过一层删除首部:(以HTTP举例)
    1)客户端在应用层发送HTTP请求,开始进行数据向下层传输
    2)传输层(TCP协议)把从应用层接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号(TCP首部)及端口号后转发给网络层
    3)网络层(IP协议),增加作为通信目的地的MAC地址(IP首部)后转发给链路层
    4)链路层增加以太网首部
    5)接收端从链路层将数据向上传输,直到传输到应用层,这才算接收到由客户端发送过来的HTTP请求
      这种把数据信息包装起来的做法称为——封装。

      IP协议,区别于“IP地址”,负责把各种数据包传送给对方。其中两个重要的条件时IP地址MAC地址(Media Access Control Address)。IP地址指明节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。
      IP间的通信依赖MAC地址,网络上通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站的中转设备的MAC地址来搜索下一个中转目标。此时会采用ARP协议(Address Resolution Protocol)
      ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

      在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线,这种机制成为路由选择(routing),无法全面掌握互联网中的传输细节。

      确保可靠性TCP协议:TCP协议为了更容易传送大数据才把数据分割成报文段(segment),这就是字节流服务(Byte Stream Service),并且能够确认数据最终是否送达到对方。为了准确无误地将数据送达目标处,TCP协议采用了三次握手策略(Three-way handshaking),使用TCP标志(flag)——SYN(synchronize)ACK(acknowledgement)

      三次握手策略:
    1)发送端首先发送一个带SYN标志的数据包给对方
    2)接收端收到后回传一个带有SYN/ACK标志的数据包以示传达确认信息
    3)发送端再回传一个带ACK标志的数据包,表示“握手”结束
      若握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

      负责域名解析DNS服务:DNS提供域名到IP地址之间的解析服务。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

      URI统一资源标识符(Uniform Resource Identifier)用字符串标识某一互联网资源,而URL统一资源定位符(Uniform Resource Locator)表示资源的地点(即互联网上所处的位置),URL是URI的子集

      不是所有的应用程序都符合RFC:有一些用来指定HTTP协议技术标准的文档,它们被称为RFC(Request for Comments,征求修正意见书)。通常,应用程序会遵循由RFC确定的标准实现,可以说RFC是互联网的设计文档,要是不按照RFC标准执行,就有可能导致无法通信的状况。

  • 相关阅读:
    基于Form组件实现的增删改和基于ModelForm实现的增删改
    Git和Github的基本操作
    如果获取的数据不是直接可以展示的结构---三种操作方式
    可迭代对象和迭代器生成器
    django之整体复习
    权限管理之大致流程
    kindedit编辑器和xxs攻击防护(BeautifulSoup)的简单使用
    博客系统之评论树与评论楼相关操作
    中介模型以及优化查询以及CBV模式
    angularjs中ajax请求时传递参数的方法
  • 原文地址:https://www.cnblogs.com/donelyorjune/p/14550000.html
Copyright © 2020-2023  润新知