TCP/IP协议、Socket、Http的区别

原创 2016年05月31日 21:17:33

这是我第一次在CSDN写博客,也是我第一次写博客。
虽然以前也没有写博客的习惯,但是传说写博客不仅能获得IT技术的精髓,而且能修得一身神功(好像很刺激的样子),而且许多大神也将自己的IT技术无私的分享给了像我一样的小白们,所以我也想把自己所学的点点滴滴,在今后的日子里,慢慢积累记录下来,分享给其他有需要的人。

说到Linux网络编程,估计大多数人的第一反应就应该是大名鼎鼎的TCP/IP和Socket编程吧。
这里我就想说说TCP/IP协议、Socket、Http的区别。

先看看TCP/IP协议的架构:
由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
这里写图片描述
如上图,IP(internet protocol)对应的是网络层,TCP(Transmission Control Protocol)对应的是传输层,看英文全称会好容易记一些,是吧

再来说说Socket和Http,其实他们三者根本没有什么可比性,因为:
一、Socket是对TCP/IP协议的封装和应用(方便程序员调用),可以说是TCP/IP调用的接口(API),其中就包含了基本函数例如listen 、create、bind、read、write、connect、send、accept等等!通过socket,我们才能使用TCP/IP协议,但是这不是唯一的选择,因为Socket接口在设计的时候,也希望能适应其他的网络协议。

二、Http则是应用层协议,是对数据包的解析和包装。假设数据从下往上,只传到了传输层,而没有应用层,那就无法识别数据的内容,数据是没有意义的!如果想要使数据有意义,则必须将数据传到应用层,经过应用层协议(如Http、FTP、Telnet等)的转换,使数据变成我们看得懂的信息!我们也可以自己定义应用层协议哦~
WEB使用Http协议作为应用层协议,以封装Http文本信息,然后再使用TCP/IP协议做传输层协议将它发送到网络上。

网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:
TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。 这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

实际上,传输层的TCP是基于网络层的IP协议的;而应用层的HTTP协议又是基于传输层的TCP协议的;而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。

好了 最后顺带提一下,Http和FTP的端口,因为之前面试的时候面试官问我我答不上来T^T 好尴尬 而且这个知识也很重要!!!

端口号有 0~65535 的编号,其中:

1、编号 0~1023 为 系统端口号 ,这些端口号可以在网址 www.iana.org 查询到,它们被指派给了 TCP/IP 最重要的一些应用程序,以下是一些 常见的系统端口号:
应用层协议: FTP TELNET SMTP DNS TFTP HTTP SNMP
系统端口号: 21 23 25 53 69 80 161
2、编号 1024~49151 为 登记端口号 ,为没有系统端口号的应用程序使用,使用这类端口号必须在 IANA 按规定手续登记,以防止重复。

3、编号 49152~65535 为 短暂端口号 ,是留给客户进程选择暂时使用的,使用结束后,这类端口号会被放开以供其它程序使用。

其中HTTP端口号是80 FTP端口号是21。

版权声明:本文为博主原创文章,未经博主允许不得转载。

http、TCP/IP协议与socket之间的区别

网络由下往上分为:   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--          ...

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--...
  • KunGe_
  • KunGe_
  • 2017年11月08日 09:21
  • 66

Http、TCP/IP协议与Socket之间的区别

网络由下往上分为:  物理层--                       数据链路层-- 网络层--                       IP协议 传输层--   ...

http、TCP/IP协议与socket之间的区别

http、TCP/IP协议与socket之间的区别   网络由下往上分为:  www.2cto.com   物理层--                       数据链路层-...
  • zhuzeji
  • zhuzeji
  • 2014年12月11日 08:35
  • 224

HTTP、TCP/IP协议与Socket之间的区别

原地址:http://blog.csdn.net/wanglei19940101/article/details/51956759 本文首先简单的讲解TCP/IP、HTTP和Scoket之后,然后讲...

http、TCP/IP协议与socket之间的区别

http、TCP/IP协议与socket之间的区别   网络由下往上分为: 物理层--                       数据链路层-- 网络层--      ...

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com   物理层--                       数据链路层-- 网络层--                       IP协议 传...

面试篇-- Http、TCP/IP协议与Socket之间的区别

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

Http、TCP/IP协议与Socket之间的区别

我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、T...
  • done58
  • done58
  • 2016年03月28日 11:53
  • 6835

http、TCP/IP协议与socket之间的区别

第一次 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP/IP协议、Socket、Http的区别
举报原因:
原因补充:

(最多只允许输入30个字)