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

计算机网络:传输层TCP和应用层HTTP

ab31ab 2019-06-24 20:18 1031 查看

前言

      这两天在复习计算机网络的相关知识,看到tcp的时候才反应过来,我到底弄混了多少概念啊。

1.七层模型

        图片来源于百度

              

七层模型是国际标准化组织(ISO)提出的,也有五层,四层,不过都是在七层的基础上变化的,我们还是看七层的。

2.层级协议

网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议

传输层:TCP协议与UDP协议

应用层:FTP、HTTP、TELNET、SMTP、DNS等协议

链路层:ARP,RARP

如上,tcp,udp是属于传输层的协议,跟我一直以为的http和tcp是同一级的完全不一样。

我也不知道为什么我把学的东西都忘了,只能说工作太安逸了吧,接触的东西太简单了。

  HTTP((超文本传输协议))

            HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.

            客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端.在请求结束后,会主动释放连接

            http是基于tcp的

[code]    HTTP协议是建立在请求/响应模型上的。
首先由客户建立一条与服务器的TCP链接,
并发送一个请求到服务器,
请求中包含请求方法、URL、协议版本以及
相关的MIME样式的消息。服务器响应一个状态行,
包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,
因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。
一次TCP链接的建立将需要3次握手。
另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1(Connection:keep-alive)提出了可持续链接的实现方法。
HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息。
因此减少了链接建立的次数和经常性的链接开销。
http的长短链接本质上是tcp的长短链接

TCP和UDP

         tcp和udp的重点在于是传输层协议啊。

[code]TCP
传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,
必须先在双方之间建立一个TCP连接,之后才能传输数据。
TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,
保证数据能从一端传到另一端。 理想状态下,TCP连接一旦建立,
在通信双方中的任何一方主动关闭连接前,TCP 连接都将被一直保持下去。
断开连接时服务器和客户端均可以主动发起断开TCP连接的请求
tcp链接要经过三次握手方式
UDP
用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。
UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,
但是并不能保证它们能到达目的地。
由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

Socket

      socket不是协议,准确来说只是一个调用接口。

tcp和udp是传输层协议,可以通过socket来操作tcp和udp.

WebSocket

[code]WebSocket也是一种协议,并且也是基于TCP协议的。是应用层协议
具体流程是WebSocket通过HTTP先发送一个标记了 Upgrade 的请求,
服务端解析后开始建立TCP连接,省去了HTTP长连接每次请求都要上传header的冗余.
WebSocket在进行第一次HTTP请求之后,其他全部采用TCP通道进行双向通讯

当初看websocket的时候就看得迷迷糊糊的,看完网上的文章都觉得迷迷糊糊的。

我这篇文章虽然记录了一下,还是不太清楚。还需要记录通信方式才行。

计算机网络这门课,学的时候就想速成。看书也好概念都懂,但要说哪部分协议具体做什么,放什么位置全忘了。

所以建议如果学计算机网络,最好结合图文课件来学习

 

标签: