zoukankan      html  css  js  c++  java
  • 网络基础TCP/IP

    TCP/IP协议族各层的作用如下

    应用层

    决定了向用户提供应用服务时通信的活动;

    各类通用的应用服务。FTP(File Transfer Protocol,文件传输协议)、DNS(Domain Name System,域名系统)、HTTP

    传输层

    对上层应用层提供处于网络连接中两台计算机之间的数据传输;

    TCP(Transmission Control Protocol,传输控制协议;可靠的传输层协议)、UDP(User Data Protocol,用户数据报协议)。

    网络层(又称网络互连层)

    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小单位。该层规定了通过怎样的路径(传输路线)达到对方计算机,并把数包传送给对方。

    与对方计算机通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

    链路层(又名数据链路层,网络接口层)

    处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件范畴均在链路层作用范围之内。

    HTTP举例

    作为发送端的客户端在应用层(HTTP协议)发出某个Web页面的请求;

    接着为了传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层

    在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样,发往网络的通信请求就准备齐全了。(IP地址只在网络间寻址才起作用,在同一个网络内,IP地址在发送端被转化为MAC地址进行寻址,而这种转化和交换的对应关系,依赖于ARP协议和MAC地址表。) ip架设在mac之上

    接收端的服务器在链路层接收到数据,按顺序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

    与HTTP关系密切的协议: IP、TCP和DNS

    负责传输的IP协议

    按层次分,IP(Internet Protocol)网际协议位于网络层。

    IP协议的作用是把各种数据包传送给对方。而要确保传送到对方那里,则需要满足各类条件。其中重要的两个条件是IP地址和MAC地址(Media Access Control Address)

    IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。

    使用ARP协议凭借MAC地址进行通信

    IP间的通信依赖MAC地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。这时候要用到ARP协议(Address Resolution Protocol)。ARP协议是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

    在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线,这种机制称为路由选择(routing)

    确保可靠性的TCP协议

    按层次分,TCP位于传输层,提供可靠的字节流服务。

    字节流服务(Byte Stream Service)指的是,为了传输方便,将大块数据分割成以报文段(segment)为单位的数据包进行管理。可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达对方。

    为了准确地将数据送达目标,TCP协议采用了三次握手(three-way handshaking)策略。用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它会向对方确认是否成功送达。

    握手过程中使用了TCP的标志(flag) ——SYN(synchronize)和ACK(acknowledgement)。

    发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,会传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表"握手"结束。

    若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

    除了三次握手,TCP协议还有其他各种手段来保证通信的可靠性。

    负责域名解析的DNS服务

    DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。提供了域名到IP地址之间的解析服务。

    用户通常使用主机名或域名来访问对方的计算机,而非直接通过IP地址访问。因为IP地址便于计算机理解,但却不适合人类的记忆习惯。因此便产生了DNS服务。

    DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

  • 相关阅读:
    leetcode教程系列——Binary Tree
    《Ranked List Loss for Deep Metric Learning》CVPR 2019
    《Domain Agnostic Learning with Disentangled Representations》ICML 2019
    Pytorch从0开始实现YOLO V3指南 part5——设计输入和输出的流程
    Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制
    Pytorch从0开始实现YOLO V3指南 part3——实现网络前向传播
    Pytorch从0开始实现YOLO V3指南 part2——搭建网络结构层
    Pytorch从0开始实现YOLO V3指南 part1——理解YOLO的工作
    让我佩服的人生 文章
    win8.1配置cordova+ionic等一系列东西
  • 原文地址:https://www.cnblogs.com/rencoo/p/11762179.html
Copyright © 2011-2022 走看看