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

前言

      这两天在复习计算机网络的相关知识,看到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的

    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的重点在于是传输层协议啊。

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

Socket

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

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

WebSocket

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


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

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

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

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

猜你喜欢

转载自blog.csdn.net/ab31ab/article/details/93498443