宝马线上娱乐-业界公认的最权威网站,欢迎光临!

宝马线上娱乐_宝马线上娱乐平台_宝马线上娱乐2011

第一篇:网络编程基础知识

时间:2020-06-29 18:50来源:未知 作者:admin 点击:
网络七层模型从下往上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 网络七层模型的推出是循序渐进的,下面逐个按需求简单地了解下网络七层模型。

  网络七层模型从下往上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

  网络七层模型的推出是循序渐进的,下面逐个按需求简单地了解下网络七层模型。

  网络七层模型的最开始,首先要解决的问题就是两个终端之间该如何进行通信,具体来说就是一个终端上发送二进制数据,另一个终端怎么收到它传输的二进制数据。比如一台设备发送的是“你好”(二进制的1),另一台设备接收到之后就应该是“你好”(二进制的1),而不是“再见”(二进制的0),那么这个“你好”为什么用二进制的1表示,而“再见”用二进制的0表示,这都是需要标准的,比如多少伏电压用1来表示,多少伏电压用0来表示等等。

  于是出现了物理层。物理层主要解决的问题就是:制定一些标准,确保两个终端之间能进行比特流的传输。

  现在我们能在两个终端之间进行比特流的传输了,但是传输的比特流有可能出错啊,所以就需要有检错与纠错功能。

  于是出现了数据链路层。数据链路层主要解决的问题就是:提供了检错与纠错功能,来保证终端与终端之间比特流的正确传输。

  现在我们能进行终端与终端之间比特流的正确传输了,但是随着网络的发展,我们的终端不再是直接点对点的了,而是两个终端之间有很多个中继设备,由这很多个中继设备也可以组合出很多条数据传输路径,那么信息传输的时候该如何选择最佳路径呢?这就需要路由,路由就是一个进程来实现最佳路径的选择。

  于是出现了网络层。网络层主要解决的问题就是:定义了IP地址,通过IP地址寻址来确保信息传输时可以选择到最佳的传输路径。因此,IP协议是网络层协议。

  现在我们已经能给指定的终端、传输正确的比特流,但是如果我们要传的东西非常大,比如一个视频,在视频传输过程中网断了怎么办,因此我们还要考虑文件传输准确性的问题。因此,我们就需要对数据进行封装、打包,一个一个地发出去。

  例如,TCP协议,你一个终端发出了10000个包,另一个终端就必须收到10000个包,如果丢包了,就要告诉我你没接到哪个包,我再给发一遍,这样就可以保证数据传输的完整性。TCP协议是会绑定IP地址和端口的协议。而UDP协议的话,不管你丢不丢包,主机发出去就行了,如果丢包的话,下次发送再说呗,但是效率高。

  于是出现了传输层。传输层主要解决的问题就是:对数据进行封装和打包。TCP和UDP协议就是传输层协议。

  现在我们已经能给指定的终端、传输正确的、封装和打包过的数据了。但是难道我们每传输一次数据都要调用TCP去打包,然后调用IP协议寻找最佳路径去发送吗?这太麻烦了吧。

  现在我们能实现自动收发包和自动寻址了,但是如果是基于Linux系统的终端给基于Windows系统的终端传输信息呢,两个系统的语法是不一样的,传不了,怎么办?

  于是出现了表示层。表示层主要解决的问题就是:不同系统之间通信的语法问题。

  应用层是网络七层模型的最高层,是用户与网络连接的接口,如用户通过应用程序来完成传输文件、收发邮件等网络需求。HTTP协议就是应用层协议。

  后来又有了一个五层模型,是把会话层、表达层和应用层合并成了应用层,应用层一个层做了原来三个层的事。这样从下至上IP协议属于网络层协议,TCP/UDP属于传输层协议,HTTP、XMPP、WebSocket都属于应用层协议。

  总的来说,IP协议、TCP/UDP协议还有HTTP/HTTPS协议它们是分别属于网络层、传输层以及应用层的协议,所以它们根本就是存在于不同层的协议,用途就不一样,不必去探讨它们之间的区别,不具备可比性。

  TCP协议与UDP协议是一个负责数据封装与打包的协议,它们都是传输层协议。

  TCP是面向连接的,即使用TCP协议传输数据需要先建立连接,如打电话需要先拨号接通电话;而UDP是不面向连接的,传输数据之前不需要建立连接,如写信直接发出去了。

  TCP提供可靠的通信,即TCP会保证数据的不丢包、不重复、且有序的传输;而UDP会尽可能地保证数据传输的可靠性,但无法确保数据传输不丢包。

  每一个TCP连接仅支持点对点的通信;而一个UDP连接可以支持一对一、一对多和多对多等多种通信方式。

  总的来说,TCP支持面向连接的、可靠的、点对点的通信,而UDP支持不面向连接的、不可靠的、多种通信方式的通信。

  但是UDP的传输速度极快,对系统资源的要求也极少,因此使用TCP还是UDP需要根据实际情况来选择。比如现在很多游戏,对实时性要求很高,就采用UDP协议来传输数据,当然也得益于网速的提高使得丢包的概率极低。

  第一次握手:客户端向服务端发送报文发起连接请求,客户端进入(连接请求_已发送)的状态;

  第二次握手:服务端收到客户端发起的请求,会向客户端发送一个报文来确认下这个连接请求,服务端进入(已接收到客户端连接请求)的状态;

  第三次握手:客户端在收到服务端确认的报文后,还会向服务端发送一个确认连接的报文,发送完毕后,客户端和服务端就进入了(连接建立)的状态,就可以传递数据了,握手过程是不能包含数据的。

  HTTP协议是超文本传输协议的缩写,它是基于TCP协议实现的一个应用层的协议,所以一个HTTP连接其实就是一个标准的TCP连接。最初设计HTTP协议是为了从万维网传输HTML页面到本地浏览器,那么到现在的的话HTTP协议就是指客户端向服务端发起一个请求,存储着资源的服务器把数据传输给客户端的一种传输协议。环亚游戏

  HTTP协议以明文的方式传输,不提供任何方式的数据加密,所以攻击者如果攻击了客户端和服务端之间的传输报文,就可以直接读取其中的信息,因此传递一些敏感信息用HTTP协议是不安全的。

  HTTPS协议是HTTP的安全版,它是在HTTP协议的基础上增加了SSL安全协议形成的一个加密传输协议,来保证数据传输的安全性。

  HTTP连接最显著的特点就是客户端每发送一次请求,服务端都会返回一个响应(返回成功的数据也好、失败也好),这次请求结束后,这个HTTP连接就会主动释放掉,因此HTTP连接是一种“短连接”。

  对于HTTP连接来说,从建立连接到关闭连接的这一段过程称为一次连接。如果服务端长时间没收到客户端的请求,就会认为客户端下线了,同样的如果客户端长时间无法收到服务端的响应,就会认为网络已断开,因此如果想要保持客户端持续在线的状态,就需要不断地向服务端发起HTTP请求。

  计算机网络概述 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。 按照计算机网络的定义,通过一定...

  1 这些都是什么# 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主...

  个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...

  1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
最新评论 进入详细评论页>>
推荐内容