http 协议 与tcp/ip协议、Socket的区别

综述

我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。

     而我们平时说的最多的Socket是什么呢,实际上Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:

     “TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

一, 传输层的作用

TCP协议:如果说IP协议是找到对方的详细地址。那么TCP协议就是把安全的把东西带给对方。各有分工,互不冲突。按层次分,TCP属于传输层,提供可靠的字节流服务。什么叫字节流服务呢?这个名字听起来让人不知所以然,下面听下我通俗的解释。所谓的字节流,其实就类似于信息切割。比如你是一个卖自行车的,你要去送货。安装好的自行车,太过庞大,又不稳定,容易损伤。不如直接把自行车拆开来,每个零件上都贴上收货人的姓名。最后送到后按照把属于同一个人的自行车再组装起来,这个拆解、运输、拼装的过程其实就是TCP字节流的过程。

所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方

网络层协议提供了两个主机间的通信

传输层提供了两个进程间的通信

二, 网络层的作用

  1.异构网络互联

  所谓网络的互联是指将两个以上的计算机网络,通过一定的方法,用一种或者多种通信处理设备(中间设备)相互连接起来,以构成更大的网络系统

  物理层中继系统:中继器,集成器。

  数据链路层:网桥或者交换机。

  网络层中继系统:路由器。

  网络层以上的中继系统:网关

  2.路由与转发

  路由选择:指按照复杂的分布式算法。根据从各相邻路由器所得到的关于整个网络的拓扑情况,动态地改变所选择的路由

  分组转发:指路由器根据转发表将用户的IP数据报从合适的端口转发出去。

  3.拥塞控制

  由于出现过量的分组而引起网络性能下降的现象称为拥塞。

三, 数据链路层的作用

  1、为IP模块发送和接收IP数据报。

  2、为ARP模块发送ARP请求和接收ARP应答。

  3、为RARP发送RARP请求和接收RARP应答。

猜你喜欢

转载自blog.csdn.net/asdfsadfasdfsa/article/details/87560902