TCP/IP、UDP、Http、Socket的区别

一、网络七层模型

20世纪70年代中,为了优化数据库系统设计,支持数据库系统的访问,美国的一个互联网研究小组提出了一个结构化的分布式通信系统体系结构(共七层),他们内部称之为分布式系统体系结构(DSA),1977年英国标准化协会向国际标准化组织(ISO)提议,为了定义分布处理之间的通信基础设施,需要一个标准的体系结构。后来,ISO就开放系统互联(OSI)问题成立了一个专委会(TC 97, Subcomittee 16),指定由美国国家标准协会(ANSI)开发一个标准草案。1978年3月,在ISO的OSI专委会在华盛顿召开的会议上,与会专家很快达成了共识,认为这个分层的体系结构能够满足开放式系统的大多数需求,而且具有可扩展的能力,能够满足新的需求。于是,1978年发布了这个临时版本,1979年稍作细化之后,成了最终的版本。

七层模型内容如下,左侧列出的是简化后的四层模型。

实体层:连接网络的硬件设备,就是将电脑连接起来的物理手段. 如光缆/电缆/无线电波

数据链路层 (Link):建立逻辑连接、进行硬件地址寻址、差错校验等功能,如32位和64位计算机,他们的解码方式是不一样的,数据链路层就规定个二进制数据的解读方式。

网络层 (Network):进行逻辑地址寻址,实现不同网络之间的路径选择。网络层建立了主机之间的通信,它在网络层引入了一套地址机制:网络地址.简称网址(Ip地址),我们可以通过Ip地址,可以找到唯一的一台计算机,通过主机MAC地址来接收和发送信息.

传输层 (Transport):定义传输数据的协议端口号,以及流控和差错效验,定义了端口和端口之间的通信,帮助我们使不同的应用程序能够接收到自己所需要的的数据。

会话层(Session Layer):包括建立、管理、终止会话,用来建立和管理应用程序之间的通信,实现自动寻址,自动收发数据。

表示层(Presentation Layer):数据的表示、安全、压缩。比如我们要用基于Unix系统的mac电脑给pc机发送数据,表示层为我们解决了通信间语法的问题。

应用层 (Application):网络服务与最终用户的一个接口。比如不同的文件类型要用不同的应用程序打开,应用层中就规定了不同应用程序的数据格式.

二、IP,TCP,UDP,HTTP,TCP/IP,Socket

IP协议,为计算机网络相互连接进行通信而设计的协议。

TCP/UDP协议,基于二进制流的控制间传输协议。 TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。

HTTP协议,超文本传送协议(Hypertext Transfer Protocol ),HTTP协议是建立在TCP协议之上的一种应用。

IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。注意TPC/IP位于传输层,它主要用来解决数据如何在网络中传输,与IP协议要区分开。

IP协议规定网络之间互连的协议;TPC/IP协议是传输层协议,主要解决数据如何在网络中传输;HTTP是应用层协议,主要用于包装数据。

Socket相当于调用接口(API),用来调取TCP/IP协议。

三、使用Socket建立网络

网络上两个程序通过双向通信实现数据交换,socket又叫套接字,每个应用程序开启后,都会在传输层端口上绑定一个socket,不同应用程序之间通过寻找端口找到socket实现数据通信。

Socket连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。

时间: 03-17

TCP/IP、UDP、Http、Socket的区别的相关文章

HTTP/TCP/IP UDP Socket等区别联系

1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_

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

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

Http TCP/IP协议和socket之间的区别和联系

总结,TCP/IP是传输层协议,主要解决数据如何在网路中传输,socket是TCP/IP协议的具体实现,是对TCP/IP协议的封装和应用,属于程序员层面,HTTP是应用层协议,应用层协议很多,类似的像HTTP.FTP.Telnet. 传输层协议和应用层协议的区别和分工可以用下面的一段话做总结: "我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP.FTP.T

Http、TCP/IP协议与Socket

网络由下往上分为: 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- TCP协议 会话层-- 表示层和应用层-- HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别"的网络之上. 建立起一个TCP连接需要经过"三次握手": 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态

TCP、UDP及Socket(Port)的关系,深入浅出!

转自http://www.cnblogs.com/wish123/archive/2013/04/12/3017031.html 提醒:貌似这里说的socket是指port,而非socket api技术!仅供参考!貌似标题命名不准确的说<更安全的Linux网络>第1章防火墙的基本概念,在本书的开始将详尽讲解与防火墙相关的TCP/IP技术.此外,对于防火墙的原理.种类.架构及其优.缺点,在本章中也都有详尽的介绍.本节为大家介绍TCP.UDP及Socket的关系.1.4 TCP.UDP及Socke

Sqlserver 远程连接的 TCP/IP 和 Named Pipes的区别

TCP/IP:  TCP/IP是 Internet 上广泛使用的通用协议.它与互连网络中硬件结构和操作系统各异的计算机进行通信.TCP/IP包括路由网络流量的标准,并能够提供高级安全功能.它是目前在商业中最常用的协议.将计算机配置为使用 TCP/IP可能会很复杂,但大多数联网的计算机已经配置正确.若要配置未在 SQL Server 配置管理器中出现的 TCP/IP 设置,请参阅Microsoft Windows 文档.  Named Pipes:  Named Pipes 是为局域网而开发的协议

TCP与UDP在socket编程中的区别 (网络收集转载)

http://blog.chinaunix.net/uid-26421509-id-3814684.html 一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时

TCP与UDP在socket编程中的区别

一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时的区别 socket()的参数不同  UDP Server不需要调用listen和accept  UDP收发数

android 网络编程--socket tcp/ip udp http之间的关系

网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络层.链路层通信协议概图.我们经常接触到的一般是: http协议:应用层协议,并且http协议是基于tcp连接的,主要解决的是如何包装协议的 tcp协议:运输层协议,通常也叫做tcp/ip协议,主要解决数据如何在网络中传输 udp协议:运输层协议,用户数据报协议,不可靠的协议,只负责把应用层的协议的数

TCP/IP协议与HTTP协议区别SOCKET接口详解

网络由下往上分为:      物理层--                       数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议   socket则是对TCP/IP协议的封装和应用(程序员层面上).也可以说,TPC/IP协议是传输层协议,主要解决数据 如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/