关于问题什么是网络,了解什么是 IP、TCP 协议、UDP 协议、http 协议?一共有 2 位热心网友为你解答:
【1】、来自网友【会点代码的大叔】的最佳回答:
谢邀~
在 IT 行业摸爬滚打十多年,对这些技术有一定的了解,本人又喜欢用简单的语言解释这些专业术语,下面我就尝试给大家解释一下这些名词。
网络
首先是什么是网络,我觉得网络可以用很多种解释。
网络是由点和线组成,点和点之间用线连接。我们通常说的计算机网络,【点】就是有独立计算能力的终端,如电脑、手机,【线】就是通信线路,比如有线网络、无线网络,网络上的终端,可以通过通信线路完成数据通信和资源共享。
举个例子:
-
把网络比作我们村儿,每个房子是终端,村里的路是通信网络,我给二姑家送十几个馒头(数据),三舅给我们家送来一筐鸡蛋(资源),这样就完成了数据的传输。
IP
-
我去给二姑送馒头的时候,我需要知道二姑家的门牌号码。数据在网络传输的时候,也需要知道目的地在哪,
IP
就是这个门牌号码。
-
二姑家房子大、房间多,我按照门牌号码(
外网 IP
,全网唯一)把馒头送过去,二姑把馒头放到厨房的柜子里面(
内网 IP
,在内部网络中唯一)。
-
之前村儿里的门牌号码都是四位的,木叶村 0001 号、0002 号(
IPV4
),现在村儿里不断来新人,四位不够了,现在改成木叶村 000001 号,000002 号(
IPV6
)。
网络协议
TCP、UDP、HTTP 这些都是网络协议,那么怎么解释呢?(我有点儿编不下去了,但是自己选的题,含着泪也要回答完。)
我们村儿…我二姑…还有啥事儿可编呢…对了,我爸是村长。
-
送馒头之前,我先给我二姑家打个电话,“二姑,你在家么?”,“在家呢”,“好的”(
三次握手
),确认二姑在家,我就去送馒头,这就是
TCP,是面向连接,传输是可靠的。
-
二姑家没电话,我用村里大喇叭广播一下(谁让我爸是村长):“二姑,我去给你送馒头了”,这就是
UDP,无连接,不可靠
,二姑可能不在家。
-
HTTP 是多 TCP 的封装,TCP 协议是传输层,HTTP 是应用层
,就看做以前我走路去二姑家,现在我骑自行车去二姑家。
有些解释可能比较牵强,大家先理解个大概,再深入研究。
我将持续分享 Java 开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
【2】、来自网友【一个存在感小透明】的最佳回答:
这些概念是计算机专业大学课程《计算机网络》中的内容。我就用比较容易理解的方式来解释下这几个离我们生活其实很近的名词。
首先我们要知道我们每天用的网络使用的是 OSI 这个开放性的通信系统互连参考模型,分为七层结构。从上到下分别是 应用层,表示层,会话层,传输层,网络层,数据链路层和底层的物理层。其中上面四层定义了应用程序的功能,而剩下的三层主要面向了端到端的数据流。我们接下来要介绍的几个概念,就分属于不同的层级。
IP
IP 通常是指一个地址,是属于网络层。当数据流从一个网络被传输到另一个网络,就是通过 IP 来寻址传输。可以理解为 IP 是一个写了铭牌的大门,数据流就是通过这个铭牌来确认自己找到了对的地址的。而 IP 的格式通常是网络地址+主机地址,网络地址指定了一个地址段,主机地址指定了这个地址段内的某台主机。
需要注意的是,网络层的数据传输都是明文的,也就是说如果从网络层进行数据拦截的话,是能直接解析到对方信息的。因此如果数据比较重要,比如银行账户密码等,是不可以通过 IP 协议来传输的。
TCP/UDP
这两个协议都是传输层的协议,要比 IP 更高一层。主要通过端口号来将数据传给指定的应用程序。
其中,UDP 协议是不可靠的传输协议,好处是数据延时非常少,当然这是以丢失部分数据为代价的。主要用于视频电话,电话会议这种对数据正确性要求不高的场景,因为就算对话过程中对面视频偶尔出现卡顿,也不会影响整场会议的质量。
而 TCP 协议就是通过牺牲了一部分性能来保证质量的可靠传输协议。大家可能经常听过 TCP 协议的三次握手和四次挥手。这里的握手是指通过 TCP 协议建立连接,需要甲发送一个标志位 A 告诉乙,要开始传输数据给乙了,然后乙回复一个标志位 A+1 和 B 告诉甲,它已经准备好了,然后甲最后再回复一个 A+1 和 B+1 消息说,好,那下一步开始我就要传输数据了。为什么要这么麻烦呢,就是为了防止已经失效的连接请求突然有传送给了乙,因而产生错误。从这个过程就能看出,TCP 协议是以安全性为首要任务的。
HTTP 协议
http 是最上层,应用层的协议。刚刚我们介绍的协议应用在下层,但实际上所有通信的数据都要通过应用层的处理才有意义。
http 协议是当前使用最广泛的协议,具体方法包括 get,post,delete,put 等等,而所有方法都由 http request 和 http response 组成,其中一个 request 对应一个 response。
一个 request 包含请求行(url),头(header)和实体(body)组成;一个 response 由响应头(header)以及响应实体(body)组成。
基本上平时我们通过浏览器看的网页都是使用 https 或者 http 协议实现的。
以上是我的浅见,如果对你有所帮助,欢迎赠我点赞或者评论。
我是苏苏思量,来自 bat 的 Java 开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。