diff --git "a/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\270\216\346\225\260\346\215\256\351\200\232\344\277\241/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" "b/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\270\216\346\225\260\346\215\256\351\200\232\344\277\241/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" index 9d3bb58cbe214ffabddef88c8e98b68e98eab4d2..333dd055d7b1e47b8c05cb262c7976a1dd0a9dd4 100644 --- "a/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\270\216\346\225\260\346\215\256\351\200\232\344\277\241/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" +++ "b/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234\344\270\216\346\225\260\346\215\256\351\200\232\344\277\241/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" @@ -2,20 +2,20 @@ - [一 OSI与TCP/IP各层的结构与功能,都有哪些协议](#一-osi与tcpip各层的结构与功能,都有哪些协议) - [五层协议的体系结构](#五层协议的体系结构) - - [1 应用层(application layer)](#1-应用层(application-layer)) - - [域名系统(Domain Name System缩写DNS,Domain Name被译为域名)](#域名系统(domain-name-system缩写dns,domain-name被译为域名)) + - [1 应用层(application layer)](#1-应用层) + - [域名系统(Domain Name System缩写DNS,Domain Name被译为域名)](#域名系统) - [HTTP协议](#http协议) - - [2 运输层(transport layer)](#2-运输层(transport-layer)) + - [2 运输层(transport layer)](#2-运输层) - [运输层主要使用以下两种协议:](#运输层主要使用以下两种协议) - [UDP的主要特点:](#udp的主要特点) - [TCP的主要特点:](#tcp的主要特点) - - [3 网络层(network layer)](#3-网络层(network-layer)) - - [4 数据链路层(data link layer)](#4-数据链路层(data-link-layer)) - - [5 物理层(physical layer)](#5-物理层(physical-layer)) + - [3 网络层(network layer)](#3-网络层) + - [4 数据链路层(data link layer)](#4-数据链路层) + - [5 物理层(physical layer)](#5-物理层) - [二 TCP三次握手和四次挥手(面试常客)](#二-tcp三次握手和四次挥手(面试常客)) - - [为什么要三次握手?](#为什么要三次握手?) - - [为什么要传回SYN(发起一个新链接)?](#为什么要传回syn(发起一个新链接)) - - [传了SYN,为啥还要传ACK(确认序号有效)?](#传了syn,为啥还要传ack(确认序号有效)) + - [为什么要三次握手?](#为什么要三次握手) + - [为什么要传回SYN(发起一个新链接)?](#为什么要传回syn) + - [传了SYN,为啥还要传ACK(确认序号有效)?](#传了syn,为啥还要传ack) - [为什么要四次挥手?](#为什么要四次挥手) - [三 TCP、UDP协议的区别](#三-tcp、udp协议的区别) - [四 TCP协议如何保证可靠传输](#四-tcp协议如何保证可靠传输) @@ -50,20 +50,20 @@ OSI的七层体系结构概念清楚,理论也很完整,但是它比较复 结合互联网的情况,自上而下地,非常简要的介绍一下各层的作用。 -### 1 应用层(application-layer) +### 1 应用层 -**应用层的任务是通过应用进程间的交互来完成特定网络应用。**应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如**域名系统DNS**,支持万维网应用的**HTTP协议**,支持电子邮件的**SMTP协议**等等。我们把应用层交互的数据单元称为报文。 +**应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。**应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如**域名系统DNS**,支持万维网应用的**HTTP协议**,支持电子邮件的**SMTP协议**等等。我们把应用层交互的数据单元称为报文。 -#### 域名系统(Domain Name System缩写DNS,Domain Name被译为域名) +#### 域名系统 -> 域名系统是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(百度百科)例如:一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。 +> 域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(百度百科)例如:一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。 #### HTTP协议 > 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(百度百科) -### 2 运输层(transport layer) +### 2 运输层 -**运输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务**。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 +**运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务**。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。 #### 运输层主要使用以下两种协议 @@ -86,9 +86,9 @@ OSI的七层体系结构概念清楚,理论也很完整,但是它比较复 5. 面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。 -### 3 网络层(network layer) +### 3 网络层 -**网络层负责为分组交换网上的不同主机提供通信服务。**在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用**IP协议**,因此分组也叫**IP数据报**,简称**数据报**。 +**网络层(network layer)负责为分组交换网上的不同主机提供通信服务。**在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用**IP协议**,因此分组也叫**IP数据报**,简称**数据报**。 这里要注意:**不要把运输层的“用户数据报UDP”和网络层的“IP数据报”弄混**。另外,无论是哪一层的数据单元,都可笼统地用“分组”来表示。 @@ -98,15 +98,15 @@ OSI的七层体系结构概念清楚,理论也很完整,但是它比较复 互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做**网际层**或**IP层**。 -### 4 数据链路层(data link layer) -**数据链路层通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。** 在两个相邻节点之间传送数据时,**数据链路层将网络层交下来的IP数据报组装程帧**,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。 +### 4 数据链路层 +**数据链路层(data link layer)通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。** 在两个相邻节点之间传送数据时,**数据链路层将网络层交下来的IP数据报组装程帧**,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。 在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。 控制信息还使接收端能够检测到所收到的帧中有误差错。如果发现差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错(这就是说,数据链路层不仅要检错,而且还要纠错),那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。 -### 5 物理层(physical layer) +### 5 物理层 在物理层上所传送的数据单位是比特。 -**物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。**使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 +**物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。**使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。 在互联网使用的各种协中最重要和最著名的就是TCP/IP两个协议。现在人们经常提到的TCP/IP并不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。 @@ -141,11 +141,10 @@ OSI的七层体系结构概念清楚,理论也很完整,但是它比较复 所以三次握手就能确认双发收发功能都正常,缺一不可。 -### 为什么要传回SYN(发起一个新链接) - +### 为什么要传回syn 接收端传回发送端所发送的SYN是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。 -### 传了SYN,为啥还要传ACK(确认序号有效) +### 传了SYN,为啥还要传ACK 双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号来进行验证。