一份菜单

用图说明TCP / IP协议基础知识

您是否曾经想过您的计算机如何与本地LAN上的其他计算机或Internet上的其他系统通信?

理解计算机交互方式的复杂性是网络的重要组成部分,对于系统管理员和开发人员而言,都同样感兴趣。在本文中,我们将尝试从每个人都必须理解的最基本的基础层面来讨论通信的概念。

TCP协议 / IP协议套件

网络上的计算机之间的通信是通过协议套件完成的。 TCP协议 / IP协议套件是使用最广泛,使用最广泛的协议套件。协议套件由分层体系结构组成,其中每个层都描述了可以由协议执行的某些功能。每个层通常具有多个协议选项来执行该层所遵循的职责。 TCP协议 / IP通常被认为是4层系统。 4层如下:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层

1.应用层

这是TCP / IP协议套件的顶层。该层包括使用传输层协议将数据传递到目标计算机的应用程序或过程。

在每一层都有某些协议选项可以执行指定给该特定层的任务。因此,应用程序层也具有应用程序用来与第二层(传输层)进行通信的各种协议。一些流行的应用层协议是:

  • HTTP(超文本传输​​协议)
  • FTP(文件传输协议)
  • SMTP(简单邮件传输协议)
  • SNMP(简单网络管理协议)等

2.传输层

该层为两台主机之间的数据流提供了主干。该层从其上方的应用程序层接收数据。在此层有许多协议可用,但在传输层上最常用的两个协议是TCP和UDP。

TCP协议 is used where a 可靠的连接 is required while UDP协议 is used in case of 连接不可靠s.

TCP协议 将数据(来自应用程序层)划分为适当大小的块,然后将这些块传递到网络上。它确认收到的数据包,等待发送的数据包的确认,如果未及时收到确认,则设置超时以重新发送数据包。期限‘reliable connection’如果不需要释放通过此连接通过网络传输的任何信息,则使用。因此,用于这种类型的连接的协议必须提供实现此所需特性的机制。例如,在下载文件时,不希望丢失任何信息(字节),因为它可能导致下载内容的损坏。

UDP协议 通过将数据包从一台主机发送到另一台主机,提供了一种相对简单但不可靠的服务。 UDP协议不会采取任何额外措施来确保发送的数据是否被目标主机接收。期限‘连接不可靠’用于某些信息丢失不会妨碍通过此连接完成任务的情况。例如,在流式传输视频时,由于某些原因而丢失几字节信息是可以接受的,因为这不会严重损害用户体验。

3.网络层

此层也称为Internet层。该层的主要目的是组织或处理网络上的数据移动。所谓数据移动,通常是指通过网络路由数据。在此层使用的主要协议是IP。而ICMP(流行‘ping’命令)和IGMP也在此层使用。

4.数据链路层

该层也称为网络接口层。该层通常由操作系统中的设备驱动程序和连接到系统的网络接口卡组成。设备驱动程序和网络接口卡均会处理与用于通过网络传输数据的媒体的通信详细信息。在大多数情况下,该介质为电缆形式。在此层使用的一些著名协议包括ARP(地址解析协议),PPP(点对点协议)等。

TCP协议 / IP概念示例

值得一提的是,两台计算机之间通过TCP / IP协议套件在网络上的交互是以客户端服务器体系结构的形式发生的。

服务器处理客户端请求时,客户端请求服务。

现在,由于我们已经讨论了有助于数据从主机通过网络流向目标的基础层。让我们举一个非常简单的例子来使概念更清晰。

打开网站时请考虑数据流。

如上图所示,信息向下流经主机上的每一层。在第一层,由于使用了http协议,因此形成了HTTP请求并将其发送到传输层。

此处,协议TCP为来自上层的数据分配更多信息(例如序列号,源端口号,目的端口号等),以便通信保持可靠,即可以保持对发送数据和接收数据的跟踪。

在下一层,IP在来自传输层的数据上添加了自己的信息。此信息将有助于通过网络传输数据包。最后,数据链路层确保与物理介质之间的数据传输正确完成。同样,在数据链路层进行的通信可能是可靠的也可能是不可靠的。

该信息在物理介质(例如以太网)上传播并到达目标计算机。

现在,在目标计算机(在我们的示例中是托管网站的计算机)中,发生了相同系列的交互,但是顺序相反。

首先在数据链路层接收该分组。在这一层,读取信息(由主机的数据链路层协议填充),并将其余数据传递到上层。

类似地,在网络层,读取由主机的网络层协议设置的信息,其余信息在下一个上层传递。在传输层也会发生同样的情况,最终由主机应用程序(您的浏览器)发送的HTTP请求被目标应用程序(网站服务器)接收。

人们会想知道,当目标机上的相应协议读取每一层特有的信息时,会发生什么情况,或者为什么需要它呢?好吧,让我们通过传输层上存在的TCP协议示例来了解这一点。在主机上,此协议向该层发送的每个数据包添加序列号之类的信息。

在目标计算机上,当数据包到达此层时,此层的TCP记下数据包的序列号并发送确认(接收到的序列号+ 1)。

现在,如果主机TCP在指定的时间内未收到确认,它将重新发送相同的数据包。因此,通过这种方式,TCP确保不会丢失任何数据包。因此,我们看到协议的每一层都读取其对应方设置的信息,以实现其所代表的层的功能。

端口,服务器和标准

在特定机器上,端口号与机器的IP地址一起被称为套接字。客户端和服务器上IP和端口的组合称为四个元组。这四个元组唯一地标识一个连接。在本节中,我们将讨论如何选择端口号。

您已经知道一些非常常见的服务(例如FTP,telnet等)在众所周知的端口号上运行。当FTP服务器在端口21上运行时,泰伦特服务器在端口23上运行。因此,我们看到由TCP / IP的任何实现提供的某些标准服务都具有在其上运行的某些标准端口。这些标准端口号通常从1到1023之间选择。众所周知的端口由Internet分配号码授权机构(IANA)管理。

尽管大多数标准服务器(由TCP / IP套件的实现提供)在标准端口号上运行,但是客户端不需要任何标准端口即可运行。

客户端端口号称为临时端口。短暂的意思是短暂的。这是因为客户端可能会连接到服务器,执行其工作,然后断开连接。所以我们用这个词‘short lived’因此,它们不需要标准端口。

另外,由于客户端需要知道与之连接的服务器的端口号,因此大多数标准服务器都在标准端口号上运行。

为客户端保留的端口通常在1024到5000之间。大于5000的端口号保留给那些非标准或众所周知的服务器。

如果我们看一下文件‘/etc/services’,您将找到大多数标准服务器及其运行的端口。

$ cat / etc /服务
systat		11/tcp		users
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/udp
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
ssh		22/tcp
ssh		22/udp
telnet		23/tcp
...
...
...

从/ etc / services文件中可以看到,FTP的端口号为21,telent的端口号为23等。您可以使用‘grep’该文件上的命令以查找任何服务器及其关联的端口。

就标准而言,以下四个组织/组管理TCP / IP协议套件.IRTF和IETF都属于IAB。

  1. 互联网协会 (ISOC)
  2. 互联网架构委员会(IAB)。 IAB属于ISOC。
  3. 互联网工程任务组 (IETF)
  4. 互联网研究工作组 (IRTF)

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 72 评论… 加一 }

  • 德文 2011年11月2日,上午9:02

    您忽略了最流行的应用程序层协议– HTTP!

  • 克里希南 2011年11月2日,上午9:09

    很棒的工作。简短而翔实

  • 贾拉尔·哈吉霍拉马利 2011年11月2日,下午12:10

    你好

    very 不错article
    非常感谢…

  • 乔利奥·霍菲曼·门德斯 2011年11月2日,下午1:52

    感谢您的明确解释!一世’我一直想对TCP / IP有所了解。保持良好的工作!

    问候,
    霍利奥。

  • 瓦龙奈尔 2011年11月2日,下午3:17

    这使我想起了我的思科课程,感谢您的“refresh”.
    优秀文章。

  • 纳伦德拉·康格拉卡(Narendra Kangralkar) 2011年11月2日,晚上10:21

    很好的解释!
    继续写。

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2011年11月2日,晚上10:27

    @戴文

    是。 HTTP是最流行的应用程序层协议。这就是为什么“TCP / IP概念示例”本节将使用HTTP协议对其进行说明。

    无论如何,感谢您指出,HTTP已添加到“Application Layer”部分以使列表完整。

  • 2011年11月3日,上午3:37

    谢谢您的努力。

    写得很好。

  • 冯斯基皮 2011年11月3日,下午2:54

    似乎对OSI模型是多余的。

  • 阿图尔·卡尚(ATUL KHACHANE) 2011年11月4日,晚上8:32

    是。 冯斯基皮ðŸ〜‰

    总是在这里很棒的文章……………。这是一站式资源…..您会发现几乎所有需要的东西…

  • Himanshu 2011年11月5日,下午12:48

    谢谢大家的宝贵意见。

  • grouch0 2011年11月13日,晚上9:15

    一些书说客户端(动态/临时)端口的5000上限是W. Richard Stevens的错字。’ “TCP / IP说明卷1个”并且应该是50000。问题不是’似乎已经影响了该协议在接管世界方面的进展。

  • Himanshu 2011年11月13日,晚上11:30

    @ grouch0
    好。你能提供一些参考吗?

  • 德文 2011年11月28日,晚上8:37

    您忘记了物理层。

  • Himanshu 2011年11月29日,上午12:08

    好吧,我认为您是在谈论OSI模型,其中物理层是最后一层。在TCP / IP模型中,数据链路层是第1层。有时,此层也称为“网络接口层”以免与OSI模型的数据链路层混淆。该网络接口层也封装了物理层。

  • 斯拉万 2011年12月15日,上午2:48

    谢谢. Short and informative article.

  • 迪帕克·库马尔 2012年1月3日,下午2:23

    不错…..very helpfull
    n

  • 里斯 2012年4月17日,上午5:04

    感谢您提供的信息,它帮助我了解了TCP / IP

  • 达摩什 2012年5月13日,晚上9:42

    谢谢 a lot!!!

    这是一个非常简短且很好的解释…

  • 阿西夫 2012年5月13日,晚上10:08

    简单和超级bbbbbbbbbbb

  • 罗汉 2012年6月16日,上午1:15

    应用程序使用临时端口,并且使用http作为应用程序层协议。现在,当数据包发送到目标位置时,它将同时包含临时目标端口和标准http目标端口号。目的地的传输层和应用层将如何处理此数据包?

  • 塔里克 2012年8月9日,下午3:02

    真好

    一个小演示
    Wireshark或任何其他工具可以用来显示“how”这是实时发生的。

  • 拉朱 2012年9月13日,上午8:54

    谢谢 a pile
    It’精湛的艺术技巧,对我来说知识渊博,

  • 马利克·乌斯曼 2012年10月3日,上午9:15

    谢谢 a lot!!!

    这是一个简短且很好的解释……

  • ath 2012年11月24日,上午10:13

    它很短,但太好了……内容翔实,非常感谢您

  • 里图·库什瓦哈(Ritu Kushwaha) 2013年1月26日,上午11:12

    简而言之有用的信息。做得好!!
    继续写…

  • 乌玛尔·巴杜(Umar Badu) 2013年2月7日,上午10:28

    有用的信息,我真的很感谢……Thanks

  • 庞古扎里 2013年2月14日,上午7:37

    它很容易理解。

  • 纳根德拉·巴特(Nagendra Bhat) 2013年2月20日,晚上8:20

    你好
    解释很好,如果有任何与此主题相关的博客,请提及或发邮件给我。

  • 莫妮卡 2013年3月15日,上午3:10

    用简单的语言讲得很好

  • 聚甲醛 2013年5月13日,上午2:13

    不错thanks a lot…

  • 阿缅 2013年6月12日,上午9:49

    tanx 4您的解释。

  • 阿南德 2013年7月31日,上午12:43

    很好理解

  • brig(retd)阿什瓦尼·夏尔马 2013年8月20日,上午9:47

    TCP协议 / IP的极其清晰,简洁明了的解释。
    很努力。保持。

    最良好的祝愿

  • 哈娜 2013年9月2日,上午12:05

    好理解
    谢谢

  • 哈纳布斯 2013年9月28日,上午6:00

    很有帮助………………………………

  • 楚格 2013年10月16日,晚上10:29

    We’用我认为易于阅读和理解的语言编写。谢谢。

  • 正义者 2013年10月27日,下午2:41

    很棒的文章!细节和整体视图的完美平衡ðŸ™,
    谢谢!

  • 莫里斯 2013年11月7日,上午2:51

    这很有帮助…….in simple language

  • 雅各 2013年11月8日,晚上9:00

    感谢你
    你设法救了我
    因为我不’还没有课本可供阅读
    这使我对TCP / IP无法理解
    细读我的梦想ðŸ™,

  • 梅布卜 2013年11月19日,上午6:00

    很好的解释,你也救我……………………….thank u vry much

  • 阿伦·梅塔 2013年12月8日,晚上8:28

    谢谢

  • 敏图·克里希纳(Mintu Krishna) 2013年12月12日,下午12:09

    总之很好&翔实的解释。对于对Internet感兴趣的人很有用。
    谢谢 a lot.

  • 2014年1月24日,上午5:57

    我发现这非常有用!非常感谢ðŸ™,

  • 卡姆·纳斯 2014年2月12日,上午3:23

    很好的解释…….

  • 2014年3月19日,上午2:22

    谢谢这篇文章。很好。

  • 阿马尔 2014年3月24日,上午3:15

    你好
    解释很容易阅读和理解。我想更深入地了解源端和目标端中pkts的封装和解封装过程。

    谢谢

  • 卡马尔 2014年4月9日,上午9:29

    我真的发现了有用的文章,因为…考试前我通常不穿’看完我只是看的书并搜索信息…in the net….

  • 拉维 2014年6月5日,上午6:25

    短n甜ðŸ™,

  • 库尔西杜 2014年6月10日,上午8:11

    PLZ通过图表给出了OSI和TCP / IP之间的区别

  • Asamoah Apau Daniel 2014年8月21日,上午6:55

    1.什么是传输协议?
    一种。用图和TCP和UDP之间的不同解释
    2.解释安全协议
    一种。使用FTP和SSH之间不同的图表进行说明

  • 匿名 2014年10月22日,上午1:43

    清楚说明

  • 纳沙姆 2014年11月24日,下午12:15

    非常教育坦克

  • INADRAJEET KUMAR VERMA 2014年12月21日,晚上9:45

    很好的解释!
    继续写。

  • 阿伦 2015年5月16日,上午7:00

    用简单的语言很好地解释了

  • 阿伦 2015年5月16日,上午7:01

    谢谢大家

  • 祖拜尔·哈立德 2015年5月25日,上午6:18

    先生很好解释!

    我的大部分困惑都消失了,现在我的想法很清楚了。非常感谢你

  • RVT 2015年5月25日,上午10:22

    您可以比较Modbus TCP协议和IEC 61850吗?这两种通信协议之间的优缺点是什么?

  • 贾格拉蒂·夏尔马 2015年6月3日,晚上8:25

    亲爱的朋友,非常感谢。您帮助我了解了.thanks♥。

  • 丹麦文 2015年6月7日,上午1:22

    很棒的文章..昨天我有一个3个小时的课程,但是从这篇文章中学到的知识比在那堂课上要清楚得多。非常感谢..非常感谢!

  • 哼哼! 2015年6月8日,下午1:23

    您能告诉我osi层的顺序吗? 1个> 7 or 7 <1哪个1是正确的?

  • Vignesh 2015年7月3日,上午4:25

    将TCP / IP端口增加到65355以上的任何可能性。

  • Aravind Reddy Solipuram 2015年8月21日,晚上11:11

    非常有用。非常感谢

  • 君王 2015年8月23日,上午8:31

    尼斯,并明确解释

  • 戈皮 2015年9月14日,上午11:20

    我喜欢这篇文章。现在我取消了硬件数据通过层的转移。 xxx

  • 米特拉维达 2015年9月23日,上午12:20

    互联网模型或TCP / IP参考模型专门适用于互联网工作系统,并具有4层。数据包在网络上的移动将由哪一层管理?
    A)链接层
    B)(内部)网络层
    C)传输层
    D)应用层

  • 阿卜杜勒·莫辛(Abdul Mohsin) 2015年12月30日,上午3:21

    很好的解释。谢谢。

  • 普拉卡什 一月25,2016,3:10上午

    有关TCP / IP基础的详细信息。

  • 颂歌 2016年2月18日,下午12:27

    感谢您的TCP / IP捷径课程。一世’有点互操作性。帮助我了解我在哪里看’m stuck. Well done!

  • 唐娜·迪利加·杜库 2016年3月17日,上午12:55

    very interesting. 谢谢 alot

  • 马克·阿吉拉尔 2016年12月25日,晚上11:26

    Very informative and an excellent 刷新er.

  • 巴沙瓦拉 2017年4月20日,上午1:00

    很好的解释的人,非常感谢

发表评论