网络编程通信协议————TCP/IP

通信协议

计算机之间的相互通信是通过网络来完成的,它们之间的通信必需遵守一定的规则,在计算机网络中,这些规则就是网络通信协议,它对传输的数据及格式等都做了统一的规定,双方同时遵守才能完成数据交换。

TCP/IP

TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议, TCP/IP(传输控制协议/互联网络协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式

TCP/IP是网络中基本的通信协议。从命名上看TCP/IP包括两个协议,即传输控制协议(TCP)和互联网络协议(IP),但TCP/IP实际上是一组协议,它还包括其他各种不同功能的协议,例如文件传输和电子邮件、HTTP等,而TCP协议和IP协议是保证数据完整传输的两个基本重要协议。所以说TCP/IP是Internet协议族,而不仅仅指TCP和IP。 

TCP/IP四层模型

应用层:对不同的网络应用引用不同的应用层协议,负责处理特定的应用程序的业务和程序细节,如文件传输(FTP),网页浏览(HTTP)、不同的服务采用不同的协议

常用协议如下:

1、FTP协议———(File Transfer Protocol 文件传输协议) 基于 TCP,使用端口号 20(传输数据)和 21(传输控制信息)

它的主要功能是减少或消除在不同操作系统下处理文件的不兼容性,以达到便捷高效的文件传输效果。

FTP 只提供文件传输的基本服务,它采用 客户端—服务器 的方式,一个 FTP 服务器可同时为多个客户端提供服务

在进行文件传输时,FTP 的客户端和服务器之间会建立两个 TCP 连接:21 号端口建立控制连接,20 号端口建立数据连接

FTP 的传输有两种方式:ASCII 传输模式和二进制数据传输模式。

2、HTTP协议———(HyperText Transfer Protocol 超文本传输协议) 基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),使用端口号 80 或 8080

在浏览器里输入一个网址或点击一个链接时,返回一个页面,此过程的数据传递就是依赖于HTTP协议来完成的,用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

特点:

无连接:每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

灵活:HTTP允许传输任意类型的数据

HTTP状态码:

1__:指示信息--表示请求已接收,继续处理

2__:成功--表示请求已被成功接收、理解、接受

3__:重定向--要完成请求必须进行更进一步的操作

4__:客户端错误--请求有语法错误或请求无法实现

5__:服务器端错误--服务器未能实现合法的请求

//几种常见状态码
200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在,例如输入错误的URL   非常常见
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

3、DNS———(Domain Name Service 域名服务) 协议基于 UDP,使用端口号 53

由数字组成的 IP 地址很难记忆,所以我们上网使用网站 IP 地址的别名——域名。实际使用中,域名与 IP 地址是对应的,这种对应关系保存在DNS 服务器之中。在浏览器中输入一个网站地址(域名)后,会有 DNS 服务器将域名解析为对应的 IP 地址。

4、Telnet————远程登录协议

传输层:为应用层提供端到端的通信功能,保证数据包的顺序传送以及数据的完整性。该层有两个最主要的功能,第一定义了两个主要的协议:传输控制协议(TCP)、用户数据报协议(UDP),其中TCP协议是可靠的、面向连接的协议;UDP协议是不可靠的,面向无连接的协议;第二,确定接收端的端口号即发送端的端口号。

传输层协议为TCP和UDP

两者的区别

 

网络层:网络又分局域网(LAN, Local Area Network)和广域网(WAN, Wide Area Network)。对于后者通常需要使用众多分级的路由器来连接分散的主机或者LAN,即通讯的两台主机一般不是直接连接,而是通过多个中间节点(路由器)连接的,从而形成网络拓扑连接。

网络层的任务之一就是选择这些中间节点,以确定两台主机间的通讯路径。

网络层对上层协议隐藏了网络拓扑连接的细节,传输层看来通讯双方是直接连接的

IP协议(Internet Protocol)是网络层最核心的协议,它根据数据包的目的IP地址来决定如何投递该数据包。若数据包不可直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳路由器,并将数据包交付给该路由器去转发,如此循环直至到达目标主机或者发送失败而丢弃该数据包。
 

ARP:地址解析协议

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
 

RARP:逆地址解析协议

ICMP:Internet控制报文协议

链路层四层模型的最底层,用来处理连接网络的硬件部分,包括控制操作系统,硬件的驱动、网络适配器(网卡)、及物理可见部分,与硬件相关的基本都属于链路层范畴。处理数据在物理媒介上的传输。

 

附上两篇详细博文:

TCP/IP

详解HTTP协议

你可能感兴趣的:(网络编程通信协议————TCP/IP)