图片 8

浅谈常用协议

Posted by

网络编程概述

指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统.

就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换.

1.网络的结构(OSI 7层)

1.划分方式有多种,其中osi
7层是国际标准;而五层协议体系结构中无会话层和表示层
2.OSI是Open System
Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,从下往上分别是:
物理层–>数据链路层–>网络层–>传输层–>会话层–>表示层–>应用层

网络模型

开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open
Systems Interconnection Reference
Model),是国际标准化组织提出的一个试图使各种计算机在世界范围内连为网络的标准框架,简称OSI.

2.HTTP协议和TCP/IP协议族之间的联系

  • 不管是移动客户端还是PC端,访问远程的网络资源经常使用HTTP协议(超文本传输协议【Hypertext
    Transfer Protocol
    】),是Web联网的基础,也是手机联网常用的协议之一,http协议是在网络开发中最常用的协议;访问的是远程的网络资源,格式是http://
  1. HTTP与HTTPS:
    二者使用不同的连接方式,端口也不一样,前者是80,后者是443;
    HTTPS即“安全超文本传输协议”,基于HTTP开发,使用安全套接字层(SSL)进行信息交换,是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;简单说它就是HTTP的安全版

1.HTTP是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
2.HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”

  • HTTP协议是应用层协议,主要解决如何包装数据;而TPC/IP协议是传输层协议,主要解决数据如何在网络中传输

    解释二者联系:
    1.“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,所以想要使传输的数据有意义,则必须使用到应用层协议”
    2.TCP/IP是无论上层让他传啥数据,他都通过与IP协议的操作,把这些东西分段,然后输送,同时保证在这个过程中,数据不会丢,如果丢了一块,他还得想办法重新传一次,这就是TCP/IP的意义;而HTTP主要是用来访问网页的,比TCP更上层的协议
    3.可以认为TCP/IP协议就是搬运工,保证搬动的东西不被损坏;
    HTTP是做业务的,用来决定要不要搬运,以及如何搬运,从哪去搬运。
    4.Http协议是建立在TCP协议之上的一种应用。由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求

3.Http协议的作用

规定客户端和服务器之间的数据传输格式
让客户端和服务器能有效地进行数据沟通

图片 1

  • 完整的http通信过程,可以分为2大步骤:

(1)请求 :客户端向服务器索要数据
(2)响应:服务器返回客户端相应的数据

  • 发送Http请求的方法

(1)在HTTP/1.1协议中,定义了8种发送http请求的方法
(2)最常用的是GET和POST(实际上GET和POST都能办到增删改查)

  • 3.1简单认识下GET 和 POST

3.1.1二者对比(主要区别表现在数据传递上):

GET:
1).在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开
2).由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB

POST:
1).发给服务器的参数全部放在请求体中
2).理论上,POST传递的数据量没有限制

3.1.2二者选择

1).如果要传递大量数据,比如文件上传,只能用POST请求
2).GET的安全性比POST要差些,如果包含机密敏感信息,建议用POST
3).p如果仅仅是索取数据(数据查询),建议使用GET
4).p如果是增加、修改、删除数据,建议使用POST
  • 3.2 Http通信过程
![](https://upload-images.jianshu.io/upload_images/1389082-747eba9f730f0257.png)

图片 2

屏幕快照 2016-08-31 下午3.50.48.png

网络模型七层概述

图片 31.PNG图片 42.PNG图片 53.PNG

3.TCP/IP与UDP/IP区别

TCP/IP的三次握手(形象解释):
1.主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我
2.主机B也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我
3.主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了
补充:3次握手的特点
* 握手过程中传送的包里不包含数据(这个数据是应用层的数据)
* 三次握手完毕后,客户端与服务器才正式开始传送数据
* 理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去
* 断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”
  (过程就不细写了,就是服务器和客户端交互,最终确定断开)

1.TCP/IP:是传输控制协议;UDP是用户数据报协议(UDP程序结构较简单);均工作在传输层
2.TCP是面向连接的,传输是可靠的
(确认收发);而UDP是面向非链接的,传输是不可靠的
(对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,因为不必进行收发数据的确认,所以UDP的实时性更好)
3.由于上面2的原因–>TCP应用于传输大量的数据,速度慢;UDP传输少量的数据,速度快
4.另外:程序员可以手动对UDP的数据收发进行验证,比如发送方对每个数据包进行编号然后由接收方进行验证啊什么的,提高效率
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证

TCP/IP参考模型

TCP/IP(又称TCP/IP协议簇)是一组用于实现网络互连的通信协议,其名称来源该协议簇中两个重要的协议(IP协议和TCP协议)

图片 6图片.png

该模型的流层图为上图左边是七层但这是在理论基础上,在实际运行中是右图四层

4.TCP/IP与Socket(套接字)

1.套接字概念
套接字(socket):源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字;其用于标识客户端请求的服务器和服务。它是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

2.二者之间的联系
Socket
实际上是对TCP/IP协议的封装,其本身并不是协议,而是一个调用接口(API);通过Socket,我们才能使用TCP/IP协议。但Socket跟TCP/IP协议实际也没有必然的联系;Socket编程接口在设计的时候,就希望也能适应其他的网络协议;所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。

3.TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。就像操作系统会提供标准的编程接口,比如Win32编程接口一样,TCP/IP也必须对外提供编程接口,这就是Socket编程接口;啊噢,原来就是这么回事滴😂

4.利用Socket建立网络连接的步骤

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket
,另一个运行于服务器端,称为ServerSocket
;套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,
实时监控网络状态,等待客户端的连接请求。
2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为
此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址
和端口号,然后就向服务器端套接字提出连接请求。
3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应
客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户
端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其
他客户端套接字的连接请求。
两种模型协议对照表

图片 7图片.png

5.直接上图瞅一眼呗

以下图片将说明IP协议,TCP协议,DNS协议与HTTP协议的关系

图片 8

1401034-0c9795373f536429.jpg

网络通信要素

6.相关联想

IP地址
 * 网络上主机设备的唯一标识. * IP地址 = 网络号码+主机地址. * host的标识 -ipv4:32位地址,以点分十进制表示 例如:192.168.0.1. -ipv6:128位地址,以:分隔8个16进制数 例如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984 -本地回环地址 -127.0.0.1,主机名localhost. -缺点: - 不容易记忆 - IP地址对应一个名字,叫域名. - 域名系统叫DNS,IP和域名之间映射的数据库 - ip告罄 - ipv6解决这个问题.
6.1 URL

1.什么是URL
(1)URL的全称是UniformResource Locator(统一资源定位符)
(2)URL的基本格式 =协议://主机地址/路径
(3)协议:不同的协议,代表着不同的资源查找方式、资源传输方式
(4)主机地址:存放资源的主机(服务器)的IP地址(域名)
(5)资源在主机(服务器)中的具体位置

2.URL中常见的协议
(1)HTTP : 超文本传输协议, 格式是 http://
(2)file :访问的是本地计算机上的资源,格式是
file://(不用加主机地址)
(3)mailto:访问的是电子邮件地址,格式是 mailto:
(4)FTP:访问的是共享主机的文件资源,格式是 ftp://

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注