文档章节

TCP/IP HTTP Socket的关系

种地瓜
 种地瓜
发布于 2016/03/22 15:34
字数 479
阅读 12
收藏 1

      先看下面这个图

网络由下往上分为

  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。


一般我们都知道IP协议对应于网络层,TCP对应于传输层、http协议对应于应用层,三者这这间没有对比性。


socket是对TCP/IP协议的封装和应用,也可以说,TCP/IP协议是传输层协议,主要解决数据如何在网络中传输的

http协议是应用层协议,主要解决如何包装数据

关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:

  “我们在传输数据时,可以只使用(传输层)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编程(一)
下一篇: C++学习
种地瓜
粉丝 9
博文 177
码字总数 45450
作品 0
深圳
程序员
私信 提问
http、TCP/IP协议与socket之间的区别

网络由下往上分为 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- TCP协议 会话层-- 表示层和应用层-- HTTP协议 1、TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以...

huojiao2006
2017/01/05
0
0
TCP/IP、Http、Socket的区别?

网络由下往上分为   物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。   通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,   ...

浮躁的码农
2017/11/07
0
0
WebSocket详解(六):刨根问底WebSocket与Socket的关系

1、前言 对于很多初次接触Web端即时通讯技术的人来说,WebSocket是个很新的概念,但无疑它是当前Web端即时通讯技术中最热门的关键词。随便点开一篇文章,只要说打算开发Web端即时通讯相关的的...

JackJiang2011
2017/12/15
0
0
HTTP、TCP、UDP、Socket

先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应...

程序袁_绪龙
2014/12/03
0
1
HTTP、TCP、UDP、Socket

先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 ...

krircc
2014/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

支付宝客户端架构分析:自动化日志收集及分析

摘要: 《支付宝客户端架构解析》系列将从支付宝客户端的架构设计方案入手,带领大家进一步了解支付宝在客户端架构上的迭代与优化历程。 小蚂蚁说: 《支付宝客户端架构解析》系列将从支付宝...

阿里云官方博客
11分钟前
1
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
28分钟前
5
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
30分钟前
3
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
33分钟前
2
0
Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序

今天我们来实战一把, 对Map的Value值排序进行简化. 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群...

编程SHA
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部