网络

emmm,美好的下午开始了 今天咋们来复习一下网络协议。

先从7层和四层垃圾模型开始 (吐了)

 

 

 物理层协议

  负责0、1 比特流(0/1序列)与电压的高低、逛的闪灭之间的转换。规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性;该层为上层协议提供了一个传输数据的物理媒体,只是说明标准。

数据链路层协议

  负责物理层面上的互联的、节点间的通信传输(例如一个以太网项链的2个节点之间的通信);该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
  在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。

网络层协议
  将数据传输到目标地址;目标地址可以使多个网络通过路由器连接而成的某一个地址,主要负责寻找地址和路由选择,网络层还可以实现拥塞控制、网际互连等功能。
  在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。

传输层协议

  传输层是OSI中最重要、最关键的一层,是唯一负责总体的数据传输和数据控制的一层;
  传输层提供端到端的交换数据的机制,检查分组编号与次序,传输层对其上三层如会话层等,提供可靠的传输服务,对网络层提供可靠的目的地站点信息主要功能。在这一层,数据的单位称为数据段(segment)。主要功能:

  ①:为端到端连接提供传输服务

  ②:这种传输服务分为可靠和不可靠的,其中Tcp是典型的可靠传输,而Udp则是不可靠传输。

  ③:为端到端连接提供流量控制,差错控制,服务质量(Quality of Service,QoS)等管理服务

  • TCP&UDP

会话层协议:
  负责建立和断开通信连接(数据流动的逻辑通路),记忆数据的分隔等数据传输相关的管理。

表示层协议:将数据格式转换为标准格式
  将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式;主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取。具体来说,就是将设备固有的数据格式转换为网络标准传输格式,不同设备对同一比特流解释的结果可能会不同;因此,主要负责使它们保持一致。

应用层协议:

  ①:超文本传输协议HTTP:这是一种最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页。

  ②:文件传送协议FTP:提供交互式的访问,基于客户服务器模式,面向连接 使用TCP可靠的运输服务。主要功能:减少/消除不同操作系统下文件的不兼容性。

 

  ③:远程登录协议TELNET:客户服务器模式,能适应许多计算机和操作系统的差异,网络虚拟终端NVT的意义。

  ④:简单邮件传送协议SMTP:Client/Server模式,面向连接。基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件。

  ⑤:DNS域名解析协议:DNS是一种用以将域名转换为IP地址的Internet服务。

  ⑥:简单文件传送协议TFTP:客户服务器模式,使用UDP数据报,只支持文件传输,不支持交互,TFTP代码占内存小。

  ⑦:简单网络管理协议(SNMP): SNMP模型的4个组件:被管理结点、管理站、管理信息、管理协议。SNMP代理:运行SNMP管理进程的被管理结点。

  ⑧DHCP动态主机配置协议: 发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名 Options –可选参数字段,参考定义选择列表中的选择文件。

 

  PS:其实协议分层只是为了更好地理解我运用协议的作用,而不是绝对的分层,有的层之间协议也是可以共用的,特别是会话层、表示层和应用层这三层。

 

 

 

所有技术的诞生最终目的都是为了解决问题!TCP/IP也一样!

  背景:

  为了减少网络设计的复杂性,大多数网络都采用分层结构。而TCP/IP协议采用了4层的层级结构。

  在阿帕网(ARPA)产生运作之初,通过接口信号处理机实现互联的电脑并不多,大部分电脑相互之间不兼容。在一台电脑上完成的工作,很难拿到另一台电脑上去用,想让硬件和软件都不一样的电脑联网,也有很多困难。当时美国的状况是,陆军用的电脑是DEC系列产品,海军用的电脑是Honeywell中标机器,空军用的是IBM公司中标的电脑,每一个军种的电脑在各自的系里都运行良好,但却有一个大弊病:不能共享资源
  当时科学家们提出这样一个理念:“所有电脑生来都是平等的。”为了让这些“生来平等”的电脑能够实现“资源共享”就得在这些系统的标准之上,建立一种大家共同都必须遵守的标准,这样才能让不同的电脑按照一定的规则进行“谈判”,并且在谈判之后能“握手”

  也就是说,TCP/IP教会了电脑怎么去交流,它是一门网络通信协议,是最基本的协议;

  通俗而言:TCP负责发现传输问题,数据不对要求重传;而IP是给因特网的每一台联网设备规定一个地址。

SYN:

SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

TCP协议的三次握手

  TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。如下图TCP的通信过程所示:

  

  三次握手具体过程(状态)如下(其实可以类比打电话的过程:甲打电话,并等待接听→乙收到来电显示,“并表示可以接听”→“甲收到乙可以接听的信息”,甲接听电话。注:引号部分是打电话过程中没有的,但在TCP三次握手中存在):

  1. 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认。(客户的建立连接并等待确认

  2. 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态。(服务器端发送相关报文段信息并等待连接

  3. 第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。(客户的接收到服务端信息并实现连接

  然后,客户端和服务端就能实现正常的数据传输啦!

 

 

   总结:

   TCP通过三次握手来建立连接,在三次握手之后服务器和游览器直接会开始通讯传输数据,当通讯结束之后会执行第四次握手,关闭连接。 附加 : 三次握手都做了些啥?(1)客户端发送SYN同步码+seq序列码(2)服务器收到SYN+序列码验证完生成一个认证书(序列码+1)然后一并把 syn和ack 返回给客户端随后保持等待状态 (3)客户端收到SYN+ACK之后 ack+1 保持established状态 

posted @ 2019-10-25 22:05  OriginalT  阅读(213)  评论(0编辑  收藏  举报