网络协议

一、简述OSI的七层及TCP/IP五层(网络模型)

OSI( Open System Interconnection )
开放式网络互连,把网络通信工作分为7层,分别是物理层、表示层、会话层、传输层、网络层、数据链路层和物理层。

OSI参考模型及解释

img
TCP/IP五层协议和OSI的七层协议对应关系如下
img
在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层;一般的路由器是工作于网络层
img
在每一层实现的协议不同,即每一层的服务也不同。下面主要列出每层的主要协议
img

二、TCP/IP协议

- TCP/IP协议是一个**协议簇**。里面有包括很多协议。包括UDP,TCP和IP协议。
- TCP/IP协议集包括了应用层、传输层、网络层、数据链路层和物理层

这里写图片描述

三、各协议的基本介绍

应用层
  • HTTP

       超文本传输协议是一个简单的请求–响应协议;它通常是运行在TCP之上,它指定了客户端可能发送给服务器什么样的请求什么样的请求消息应该得到什么样的响应消息;请求和响应消息头以ASCII码式给出;就是请求体非常的臃肿;并且位于应用层

  • HTTPS

       超文本传输安全协议;是以安全为目的的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。常见于应用在交易支付方面;(SSL为安全套接层,及其继任者TLS(传输层安全)是为网络传输提供安全和数据完整性的一种安全协议;SSL和TL在应用层和传输层之间对网络进行加密)

  • SSH

       安全外壳协议;SSH为建立在应用层上安全协议;较可靠的、专为远程登录会话和其他网络服务提供安全协议。有效的防止远程管理过程中信息的泄露
       SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digita、UNIX、Irix,以及其他平台,都可运行SSH 22

  • FTP

       文件传输协议;用于网络上文件传输的一套标准协议;工作于OSI模型的第七层,TCP模型的第五层,基于TCP的协议,三次握手四次挥手。 21

  • Telnet

       远程终端协议;提供远程访问其他主机的功能,它允许用户登录internet主机,并在这台主机上执行命令

  • DNS

       域名系统(服务)协议;是一种分布式网络目录服务,主要用于域名与IP地址的相互转化,以及控制因特网的电子邮政的发送。
       host文件;域名解析器(域名转化为IP地址)

传输层
  • TCP

传输控制协议;是一种面向连接的、可靠的、基于字节流的传输层通信协议

  • UDP

用户数据协议;无连接的传输协议;为应用程序提供了一种无需建立连接就可以发送IP数据报的方法

在这里插入图片描述

网络层

负责数据的传输,在不同网络和系统间寻找路由,分段和重组数据报文,另外还有设备寻址

  • IP协议(网络互连协议)

负责TCP/IP协议主机间提供数据报服务,进行数据封装并产生协议头,是TCP和UDP的基础

数据链路层

ARP:地址解析协议; 通过IP地址获得物理地址;
RARP:逆向地址解析协议;通过物理地址获得IP地址;

四、TCP协议安全可靠

TCP(传输控制协议),是面向连接的协议,也就是说在发送和接收数据时,必须和对方建立可靠的连接

TCP建立连接的三次握手:(同步序列号和确定应答)

  • 1、主机A向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B建立连接。主机A通过这个数据段告诉主机B两件事:我想跟你通信和 你可以用此序列号作为起始数据段来回应我

  • 2、主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)的标志位的数据段来回应给主机A,也告诉主机A两件事:我已经收到你的了,你可以传输数据了你可以用此序列号作为起始数据段来回应我

  • 3、主机A接收到了这个数据段,用序列号(SYN)和确定应答(ACK)发送给主机B,我已经收到回复,我现在开始传输实际数据给主机B;

在这里插入图片描述
TCP断开连接的四次挥手:(控制位FIN 和 确认字符 ACK)

​	1、当主机A完成数据传输后,将控制位FIN置为1,提供停止TCP连接的请求;

​	2、主机B接收到FIN进行作为响应,这一连接将关闭,将ACK置为1;

​	3、主机B再提出反方向的关闭请求,将FIN置为1;

​    4、主机A对主机B的请求进行确认,将ACK置为1,双方向的请求关 闭;

在这里插入图片描述
       由TCP的建立请求的三次握手和请求关闭的四次挥手可以看出,TCP使用面向连接的通信方式,大大提高了数据的可靠性,使数据发送端和接收端在数据传输前就有了交互,为我们数据正式传输打下了可靠的基础。

五、Socket

Socket是什么
  • Socket被翻译为套接字;它是计算机之间通信的一种约定或一种方式;通过Socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据
  • Socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作
  • 我们可以理解Socket是该模型的一个实现,即Socket是一种特殊的文件,一些Socket函数进行 读写、打开、关闭等IO操作进行计算机通信
  • Socket()函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的
  • Socket是用来解决网络通信的;网络编程也称为Socket编程
网络通信
  • 网络进程中通信存在的问题
	a、我们要如何标识一台主机,即怎样确定我们将要通信的进程是在哪一台主机上
	运行?	
​	b、我们要如何标识唯一进程,本地通过pid标识,网络中应该怎样标识?
  • 解决办法
	a、TCP/IP协议簇帮我们解决了识别主机的问题;我们通过网络层的"IP地址"可以
	唯一标识网络中的主机;
	b、传输层的“协议+端口号”可以唯一识别主机中的引用程序;因此我们利用三元组
	(IP地址、协议、端口号)就可以识别网路中不同主机的线程;网络中的线程通信就
	可以利用这个标志与其他线程进行相互	

六、HTTP

       超文本传输协议是一个简单的请求–响应协议;它通常是运行在TCP之上,它指定了客户端可能发送给服务器什么样的请求什么样的请求消息应该得到什么样的响应消息;请求和响应消息头以ASCII码式给出;就是请求体非常的臃肿;并且位于应用层

请求

  • 由三部分组成:

    • 请求行;消息报头;请求正文
  • 请求方式

      	 GET  查询
      	 POST  新增
      	 PUT  修改
      	 DELETE  删除
      	 HEAD 获得响应消息报头
      	 TRACE 主要用于测试或诊断
      	 CONNECT 保留将来使用
      	 OPTIONS 请求查询服务器性能,或者查询与资源相关的选项和需求
    

响应
状态行、消息报文、响应正文

	1XX	指示信息;表示请求已接收,继续处理;
	2XX	成功;表示已被成功接收;
	3XX	重定向;要完成请求必须更进一步的操作
	4XX	客户端错误; 请求语法错误或请求方式无法实现
	5XX	服务器错误	

	200  查询成功
	201  添加成功
	204  修改或删除成功
	304 重定向
	400 请求参数错误
	401 权限不足
	403 跨域
	404 找不到
	405 请求方式错误
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gimtom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值