您的位置:首页 > 理论基础 > 计算机网络

计算机网络基础

2017-07-18 21:20 169 查看

一、OSI参考模型

即开放系统互连参考模型,共有7层:



物理层
物理层处于OSI的最底层,是整个开放系统的基础。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层
数据链路层的主要任务是实现计算机网络中相邻节点之间的可靠传输,把原始的、有差错的物理传输线路加上数据链路协议以后,构成逻辑上可靠的数据链路。需要完成的功能有链路管理、成帧、差错控制以及流量控制等。其中成帧是对物理层的原始比特流进行界定,数据链路层也能够对帧的丢失进行处理。
网络层
网络层涉及源主机节点到目的主机节点之间可靠的网络传输,它需要完成的功能主要包括路由选择、网络寻址、流量控制、拥塞控制、网络互连等。
传输层
传输层起着承上启下的作用,涉及源端节点到目的端节点之间可靠的信息传输。传输层需要解决跨越网络连接的建立和释放,对底层不可靠的网络,建立连接时需要三次握手,释放连接时需要四次挥手。
会话层和表示层
会话层的主要功能是负责应用程序之间建立、维持和中断会话,同时也提供对设备和结点之间的会话控制,协调系统和服务之间的交流,并通过提供单工、半双工和全双工3种不同的通信方式,使系统和服务之间有序地进行通信。
表示层关心所传输数据信息的格式定义,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。
应用层
应用层为OSI的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

二、TCP/IP参考模型

即传输控制协议/互联网协议,共有4层:


网络接口层
TCP/IP协议对网络接口层没有给出具体的描述,网络接口层对应着物理层和数据链路层。
互联网层 ( IP层 )
互联网层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。互联网层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,互联网层还需要完成拥塞控制的功能。  
传输层 ( TCP层 )
TCP层负责在应用进程之间建立端到端的连接和可靠通信,它只存在与端节点中。TCP层涉及两个协议,TCP和UDP。其中,TCP协议提供面向连接的服务,提供按字节流的有序、可靠传输,可以实现连接管理、差错控制、流量控制、拥塞控制等。UDP协议提供无连接的服务,用于不需要或无法实现面向连接的网络应用中。
应用层
应用层为Internet中的各种网络应用提供服务。

三、TCP协议

TCP(Transmission Control Protocol ,传输控制协议)是面向连接的传输层协议。TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。TCP协议采用字节流传输数据。


TCP报文段格式

TCP报文段包括协议首部和数据两部分。协议首部固定部分有20字节,其余是选项部分。


下面是各个部分含义:源端口号以及目的端口号,各占2个字节,端口是传输层和应用层的服务接口,用于寻找发送端和接收端的进程,一般来讲,通过端口号和IP地址,可以唯一确定一个TCP连接,在网络编程中,通常被称为一个socket接口。序号,占4字节,用来标识从TCP发送端向TCP接收端发送的数据字节流。确认序号,占4字节,包含发送确认的一端所期望收到的下一个序号,因此,确认序号应该是上次已经成功收到数据字节序号加1.数据偏移,占4位,用于指出TCP首部长度,若不存在选项,则这个值为20字节,数据偏移的最大值为60字节。保留字段占6位,暂时可忽略,值全为0标志位
URG(紧急) : 为1时表明紧急指针字段有效
ACK(确认):为1时表明确认号字段有效
PSH(推送):为1时接收方应尽快将这个报文段交给应用层
RST(复位):为1时表明TCP连接出现故障必须重建连接
SYN(同步):在连接建立时用来同步序号
FIN (终止): 为1时表明发送端数据发送完毕要求释放连接接收窗口占2个字节,用于流量控制和拥塞控制,表示当前接收缓冲区的大小。在计算机网络中,通常是用接收方的接收能力的大小来控制发送方的数据发送量。TCP连接的一端根据缓冲区大小确定自己的接收窗口值,告诉对方,使对方可以确定发送数据的字
d41c
节数。校验和占2个字节,范围包括首部和数据两部分。选项是可选的,默认情况是不选。

三次握手与四次挥手

三次握手过程如下:


1、第一次握手:客户端发送一个带SYN标志的TCP报文(报文1)到服务器端,进入SYN_SENT状态,等待服务器确认。2、第二次握手:服务器发送一个带ACK标志和SYN标志的TCP报文(报文2)给客户端,ACK用于对报文1的回应,SYN用于询问客户端是否准备好进行数据传输。并为该TCP连接分配TCP缓存和变量。3、第三次握手:客户端发送一个带ACK标志的TCP报文(报文3),作为报文2的回应。也为该TCP连接分配TCP缓存和变量。握手完成。
四次挥手过程如下:


由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。四次挥手就是双方分别发送FIN 标志来关闭连接并让对方确认。
1、客户端向服务器端发送一个FIN,用来关闭客户端到服务器端的数据传送2、服务器收到FIN后,发回ACK,确认序号为收到的数据序号加1。3、服务器关闭到客户端的连接,也发送一个FIN给客户端。4、客户端收到FIN后,发回ACK,确认序号为收到的数据序号加1,TCP连接就关闭了。

四、UDP协议

UDP协议格式

UDP,用户数据报协议,英文全称是User Datagram Protocol,它是TCP/IP协议簇中无连接的运输层协议。



从图中可以看到,UDP协议十分简单,它由两部分组成:首部和数据。其中,首部仅有8个字节,包括源端口和目的端口,长度(UDP用于数据报的长度)、校验和。

五、HTTP协议

HTTP,超文本传输协议,英文全称是Hypertext Transfer Protocol,它是互联网上应用最为广泛的一种网络协议。HTTP是一种应用层协议,它是基于TCP协议之上的请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。HTTP协议默认的端口号为80.
现在使用的HTTP协议是HTTP/1.1版本,1997年之前采用的是HTTP1.0版本。HTTP连接在1.0版本中采用非持续连接工作方式,1.1版本采用的是持续连接工作方式,持续连接是指服务器在发送响应后仍然在一段时间内保持这条由TCP运输层协议建立起来的连接,使客户机和服务器可以继续在这条连接上传输HTTP报文。
是否采用持续连接工作方式,1.0中默认是关闭的,需要在HTTP头加入"Connection:Keep-Alive",才能启用Keep-Alive。HTTP1.1中默认启用Keep-Alive,如果加入"Connection:close",才关闭。目前大部分浏览器都是用HTTP1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。

HTTP报文的格式

请求报文(sp表空格,cr if表回车和换行)




响应报文





HTTP请求方法和响应状态码
在上面的HTTP请求报文例子中,我们可以看到请求方法是GET,这表示请求读取由URL所标志的信息,除了GET,还有其它几种常用的方法。



在HTTP响应报文的例子中,我们可以看到状态码是200,表示响应成功。下表是其它状态码,总共5大类,33种。(具体请参考博文:http://www.androidchina.net/6013.html)
(搜索引擎和状态码关系请参考博文:http://www.yaoguangkeji.com/a_VkMB8rn0.html)
状态码响应类别原因短语
1XX信息性状态码(Informational)服务器正在处理请求
2XX成功状态码(Success)请求已正常处理完毕
3XX重定向状态码(Redirection)需要进行额外操作以完成请求
4XX客户端错误状态码(Client Error)客户端原因导致服务器无法处理请求
5XX服务器错误状态码(Server Error)服务器原因导致处理请求出错
HTTPS和HTTP的区别HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:1、https协议需要到ca申请证书,一般免费证书很少,需要交费。2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
下面是几个常见的问题,汇总在这里。
OSI参考模型的分为哪几层,每层的功能?
OSI,开放系统互连参考模型,它的7个层次自顶到下依次为应用层,表示层,会话层,传输层,网络层,数据链路层和物理层。各层的功能见文章开始。
TCP协议和UDP协议的区别?
TCP协议是传输控制协议,UDP协议是用户数据报协议,两者都是传输层的协议,主要区别在于前者是可靠的,面向连接的协议,后者是不可靠的,无连接的协议。TCP协议保证数据按序发送,按序到达,提供超时重传机制保证数据的可靠性。UDP协议不保证按序到达,甚至不到达,只是尽最大努力交付。TCP报文段首部固定长度为20字节,UDP数据报首部固定长度为8字节。TCP提供流量控制和拥塞控制机制 查看更多,而UDP则不提供。
TCP三次握手为什么不能是两次?
主要是防止两次握手情况下已经失效的连接请求报文段突然又传送到服务端而产生错误。例如,client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。
HTTP请求的GET方法和POST方法的区别?
GET和POST是HTTP请求的两种方法,主要区别在于GET方法是请求读取由URL所标志的信息,POST是给服务器添加信息。点击查看更多
在浏览器中输入网址到显示出页面的整个过程?
(1) 输出包含域名的网址 (2) 浏览器向DNS请求解析域名对应的IP地址 (3) 域名系统DNS解析出域名对应的IP地址 (4) 浏览器与该服务器建立TCP连接 (5) 浏览器发送HTTP请求 (6) 服务器通过HTTP响应把页面文件发送给浏览器 (7) TCP连接释放 (8) 浏览器解释文件并显示。点击更多内容
IP地址分类?
IP地址:网络号+主机号A类地址:网络地址(1Byte)+主机地址(3Byte)。网络地址的首位必须是0,则网络地址的取值范围是0~~127。地址范围:1.0.0.1~~126.255.255.254。子网掩码:255.0.0.0  ① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。范围(10.0.0.0-10.255.255.255)② 127.X.X.X是保留地址,用做循环测试用的。  B类地址:网络地址(2Byte)+主机地址(2Byte)。网络地址的首位必须是10,则网络地址的取值范围是128~~191。地址范围:128.0.0.1~~191.255.255.254。子网掩码:255.255.0.0
① 172.16.0.0—172.31.255.255是私有地址  ② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。C类地址:网络地址(3Byte)+主机地址(1Byte)。网络地址的首位必须是110,则网络地址的取值范围是192~~223。地址范围:192.0.0.1~~223.255.255.254。子网掩码:255.255.255.0① 192.168.X.X是私有地址。(192.168.0.0-192.168.255.255) D类地址:不分网络地址和主机地址。地址的首位必须是1110。地址范围:224.0.0.1~~239.255.255.254。
E类地址:不分网络地址和主机地址。地址的首位必须是11110。地址范围:240.0.0.1~~254.255.255.254。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: