我是靠谱客的博主 微笑鱼,最近开发中收集的这篇文章主要介绍网络通信协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网络通信协议

    • 什么是网络通信协议
    • Tcp/ip协议可不是单单指tcp协议和ip协议
    • Tcp/ip协议里面的网络模型层
      • Tcp/ip协议里面的网络模型层如下所示
        • 应用层协议
          • 举例讲解应用层协议
        • 传输层协议
        • 网络层协议
        • 链路层协议
    • 通过一次数据的传输来讲解Tcp/ip协议里面的网络模型层

什么是网络通信协议

通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。

网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互联协议),它是一个包括TCP协议和IP协议,UDP(User Datagram Protocol)协议和其它一些协议的协议组,在学习具体协议之前首先了解一下TCP/IP协议组的层次结构。

Tcp/ip协议可不是单单指tcp协议和ip协议

Tcp/ip协议是一个泛指,它包含下面的所有协议
在这里插入图片描述

Tcp/ip协议里面的网络模型层

Tcp/ip协议里面的网络模型层如下所示

首先我们要明白协议的目的就是为了接收方都能给接收指定的发送方的正确的数据,这里为什么要说指定的呢,因为谁都能连互联网,你不能让接收方谁的消息都接收吧(就比如qq的三个用户a,b,c,然后a给b发送了一个消息,你不能让c接收a发送的消息吧),所以这里就制定了一系列的协议让接收方都能给接收指定的发送方的正确的数据,这就是tcp/ip协议出现的目的,
在这里插入图片描述

应用层协议

这里我们就通过http协议来讲就好了,Http协议即超文本传送协议,它规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式,所以就是说应用层就是规定传送数据的格式

举例讲解应用层协议

首先查看linux里面有没有telnet命令,如果没有的话,就使用下面的命令进行安装telnet命令

yum install xinetd telnet telnet-server -y

在这里插入图片描述
然后执行下面的命令,telnet命令本身就是一个应用层协议,它的作用是在两台主机间,建立一个连接,也就是打开两台主机间文本传输的一个通道。"telnet google.com 80"表示建立本机与google.com在80端口的一个文本传输通道(注意此时连接的是google.com的,如果你的服务器不在国外的话,那么下面的地址就要变成国内的服务器地址了)。因为80端口是HTTP协议的端口,就是我们平时浏览网页的端口,所以此时的应用层的协议就是http

telnet google.com 80

然后结果如下所示
在这里插入图片描述
然后我们按照提示按ctlr+]键,按完之后,在点击enter键,此时结果如下所示
在这里插入图片描述

然后我们不能直接在telnet后面输入命令,而是先点击enter键,然后在输入命令,然后输入内容,比如我输入hello内容,但是此时要注意,此时的hello根本就不符合http协议规定的内容,所以此时返回的消息报错了,而且此时可以看到等返回数据之后,此时的链接就关闭了
在这里插入图片描述
然后我们在重新启动一个,然后输入下面的命令,注意下面的/符号和后面的H之间有一个空格,这个是必须的,然后在执行下面的命令的时候,要快速点击两次enter键,这个点击两次enter键也是必须的,然后此时结果如下所示,此时返回的数据就成功了,这就是http协议规定数据的内容格式的作用

GET / HTTP/1.1

在这里插入图片描述

传输层协议

当应用层里面的数据规定好之后,那么就要通过一定的方式进行传输,传输层协议就是规定这个传输的方式的,主要有tcp和udp两种方式

网络层协议

网络层协议的作用就是让客户端可以找到互联网里面的指定的那一台服务器(因为互联网里面的服务器多的不行,所以就通过网络层协议规定找的规则)

链路层协议

链路层协议就是和电脑驱动和网卡这些硬件打交道的了,这个也比较好理解的

通过一次数据的传输来讲解Tcp/ip协议里面的网络模型层

如下所示,如果感觉图不够清晰的话,就看下面的网址
在这里插入图片描述
https://juejin.im/post/5a069b6d51882509e5432656#heading-42

能看到这里的同学,就帮忙右上角点个赞吧,Thanks♪(・ω・)ノ

感谢大佬:
https://juejin.im/post/5a069b6d51882509e5432656#heading-42
https://blog.csdn.net/chentiefeng521/article/details/57418180
http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html
https://www.jianshu.com/p/5a2e39858b68

最后

以上就是微笑鱼为你收集整理的网络通信协议的全部内容,希望文章能够帮你解决网络通信协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部