TCP协议简介

 

       本章节学习的是一些概念性的知识,关于TCP协议,我的文章和别人的文章没什么区别,各位不必关心TCP的细节,走马观花的看一下就可以了。

什么是TCP

       TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 [1]  另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。

1、什么是 TCP/IP

       TCP/IP 是供已连接因特网的计算机进行通信的通信协议。

       TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。

       TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。

2、在 TCP/IP 内部

       在 TCP/IP 中包含一系列用于处理数据通信的协议:

       TCP (传输控制协议) - 应用程序之间通信

       UDP (用户数据包协议) - 应用程序之间的简单通信

       IP (网际协议) - 计算机之间的通信

       ICMP (因特网消息控制协议) - 针对错误和状态

       DHCP (动态主机配置协议) - 针对动态寻址

       你将在本教程中学习到更多关于这些标准的知识。

3、TCP 使用固定的连接

       TCP 用于应用程序之间的通信。

       当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

       这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

       UDP 和 TCP 很相似,但是更简单,同时可靠性低于 TCP。

4、IP 是无连接的

       IP 用于计算机之间的通信。

       IP 是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP 就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。

       通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。

       IP 负责将每个包路由至它的目的地。

5、IP 路由器

       当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。

       IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。

       在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。

6、TCP/IP

       TCP/IP 意味着 TCP 和 IP 在一起协同工作。

       TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。

       IP 负责计算机之间的通信。

       TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们。

       IP 负责将包发送至接受者。

7、IP地址

       每个计算机必须有一个 IP 地址才能够连入因特网。

       每个 IP 包必须有一个地址才能够发送到另一台计算机。

       这是你的 IP 地址:113.100.54.128

       TCP/IP 使用 4 个数字来为计算机编址。每个计算机必须有一个唯一的 4 个数字的地址。

       数字在 0 到 255 之间,并由点号隔开,像这样:192.168.1.60

8、TCP 使用固定的连接

       TCP 用于应用程序之间的通信。

       当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

       这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

9、域名

       12 个阿拉伯数字很难记忆。使用一个名称更容易。

       用于 TCP/IP 地址的名字被称为域名。www.sina.com.cn 就是一个域名。

       当你键入一个像 www.sina.com.cn 这样的域名,域名会被一种 DNS 程序翻译为数字。

       在全世界,数量庞大的 DNS 服务器被连入因特网。DNS 服务器负责将域名翻译为 TCP/IP 地址,同时负责使用新的域名信息更新彼此的系统。

       当一个新的域名连同其 TCP/IP 地址一同注册后,全世界的 DNS 服务器都会对此信息进行更新。

10、IPV4与IPV6

       什么是ipv4、ipv6?ipv4与ipv6是目前的全球因特网所采用的协议族是TCP/IP协议,也就是IPv4的地址位数为32位,也就是最多有2的32次方数量的电脑可以同时联到Internet上,十多年来由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,下面我们就来一起学习下ipv4、ipv6、ipv9的相关知识。

       各项资料显示全球IPv4位址在2011年就全部发完。而ipv6采用128位地址长度,几乎可以不受限制地提供地址。按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。

       在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。

IP地址、网关、子网掩码、DNS服务器

       首先,我对这些概念是很模糊的,听得太多了也就会用了。

       对程序员来说,重点关心IP地址、网关、子网掩码三个概念。

       在Linux下,用ifconfig可以查看IP地址、子网掩码,看不到网关,如下:

      

       在windows下,用ipconfig可以查看IP地址、网关、子网掩码,如下:

       

       也可以在图形界面中查看。

       

 

1、IP地址

       我们现在所说的IP地址是指ipv4,我对ipv6不熟悉,也一样活得很好。

2、网关

       大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络访问另一个网络

       也必须经过一道“关口,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。也就是网络关卡

       网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。

       各位家里那个用于上网的东东是路由器,也是网关。

3、子网掩码

       子网掩码(subnet mask)又叫网络掩码地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。

       这段话我也不明白是什么意思,也不想去搞明白,但我知道,在同一网段中,不同的主机的子网掩码要相同。

4、DNS服务器

       即域名解析服务器。

5、一个特殊的IP地址和主机名

       127.0.0.1  localhost

应用层协议

       基于TCP协议,还有很多应用层协议。

       如果把TCP协议比喻成公路的网,应用层协议就像基于公路网的各种业务系统,例如客运系统、公交系统、物流系统、快递系统、外卖系统。这些系统都是基于公路网。

       客运系统:如果要座车去目的地,一般是其它城市,就要去客运站,这是约定,是规则,就是协议。

       快递系统:只能寄件和收件,不能运人,也不必去客运站,这也是约定,是规则,也是协议。

       TCP应用层协议有三个基本要素:服务端、客户端和通讯端口。

1、HTTP - 超文本传输协议

       HTTP 负责 web 服务器与 web 浏览器之间的通信,通讯端口一般是80。

       HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。

2、HTTPS - 安全的 HTTP

       HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信,通讯端口一般是80。

       作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。

3、SMTP - 简易邮件传输协议

       SMTP 简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP)是在Internet传输email事实标准

       SMTP是一个相对简单的基于文本协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。

       POP3 用于从电子邮件服务器向个人电脑下载电子邮件。

       POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。

       POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。

       POP协议的通讯端口一般是25。

4、DHCP - 动态主机配置协议

       DHCP 用于向网络中的计算机分配动态 IP 地址。

       动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网网络协议,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。

       DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

       DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:

       1)保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

       2)DHCP应当可以给用户分配永久固定的IP地址。

       3)DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。

       4)DHCP服务器应当向现有的BOOTP客户端提供服务。

       DHCP有三种机制分配IP地址:

       1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

       2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

       3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

       一般来说,个人电脑采用动态分配地址的方法,而服务器的地址是固定的,不会动态分配。

5、FTP - 文件传输协议

       FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议族中的一员。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

       FTP协议的通讯端口一般是21。

6、telnet协议

       Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器

       Telnet是一个不安全的协议,现在基本上被ssh协议取代了。

       telnet协议的通讯端口一般是23。

7、ssh

       SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其他平台,都可运行SSH。

       ssh协议的通讯端口一般是22。

8、自定义协议

       这里是我们程序员为了实现数据的交换自定义的协议。数据交换的方式由程序员自己定,也有服务端和客户端,通讯端口也是由程序员自定义,只要不与其它应用协议的端口重复就行。在接下来的章节中,我们将介绍如何基于TCP协议进行数据通讯。

版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值