网络编程-----OSI七层模型、TCP/IP模型

OSI网络七层模型以国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系为参考模型,不仅包括一系列抽象的术语或概念,也包括具体的协议。 每一层实现各自的功能和协议,并完成与相邻层的接口通信。

先来说说两个简单的概念:

网络:把独立的计算机连接起来就构成了网络;

互联网:把各个网络连接起来就构成了互联网。

一起来看看网络分层吧~

计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层对应着OSl/RM模型的应用层、表示层和会话层,TCP/IP的数据链路层(网络接口层/链路层)对应OSI的数据链路层和物理层,而传输层和网络层在两个模型中一一对应。

我们来看看每层具体都会用到哪些协议,会做些什么?

  • 应用层:负责处理特定的应用程序细节。

常用协议:HTTP(超文本传输协议)、FTP(文本传输协议)、SMTP(简单的邮件传输协议)、DNS(域名解析协议)

HTTP:是一个无状态的协议,默认的端口号为80。由请求和响应构成,是一个标准的客户端服务器模型。无状态是指协议对于事务处理没有记忆能力。HTTPS协议在HTTP协议基础上加了SSL协议,可进行加密传输和身份认证,比HTTP协议更安全,默认端口443.

FTP:基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。

TFTP(简单文件传输协议)是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议。和使用TCP的文件传输协议(FTP)不同,为了保持简单短小,TFTP使用了UDP。

SMTP:用户连接上邮件服务器之后,要想给它发送一封电子邮件,需要遵循一定的通讯规则,SMTP协议用来定义这种通讯规则。SMTP使用端口25

DNS:作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(主机名解析)。有递归迭代两种解析方式。DNS协议运行在UDP协议之上,端口号53

  • 传输层:(数据以报文形式存在)

为两台主机上的应用程序提供端到端的通信。

常用协议:TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)

TCP:面向连接的、可靠的、流式服务。可以确保有序地发送数据,并管理网络中的拥塞问题。通过三次握手建立连接,使用流量控制、滑动窗口、应答确认、超时重传等机制保证可靠传输。数据收、发次数不相等,发送方将数据写入发送缓冲器,接收方从接收缓冲区读取数据,如果一次读取将发送的数据获取不完,下次接着获取。

UDP:无连接的、不可靠的、数据报服务。它不能确保有序地发送数据,也无法管理网络拥塞的问题。但是,UDP 是一种快速协议,可以保护自己传输的消息的边界,不会出现“粘包”。UDP也有发送和接收缓冲区,但是如果一次读取没有将写入的数据读完,剩余的数据就会被丢弃。

SCTP: IP 网络上使用的一种可靠的通用传输层协议。SCTP 协议最初是为发送电话信号而设计的,它通过借鉴 UDP 的优点解决了 TCP 的某些局限。SCTP 结合了TCP和UDP的优点,提供的特性使套接字初始化的可用性、可靠性和安全性都得以提高。主要增强的是终端主机的多宿主多流功能

多宿主主机:一台具有多个网络接口的主机,可以通过多个 IP 地址来访问这台主机。传统的TCP只是端对端的通信,SCTP 引入了 联合 的概念,它存在于两台主机之间,但可以使用每台主机上的多个接口进行协作。

多流功能:SCTP 连接与 TCP 连接类似,只是 SCTP 能够在一个联合中支持多流机制。一个联合中的所有流都是独立的,但均与该联合相关。在 TCP 中,控制和数据通常都是通过相同的连接进行共享的,这可能会产生问题,因为控制报文可能会在数据报之后延时。如果控制和数据被划分成单独的流,控制数据就可以以一种更及时的方式进行处理,从而可以更好地利用可用资源。

  • 网络层:(数据以分组形式存在)

实现数据包的选路和转发。

常用协议:IP(因特网协议)、ICMP(因特网控制报文协议)

IP:寻址和路由选择,根据对方的IP地址,选取最佳路径传输信息。

特点:①不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议); ② 无连接(不建立会话),不维护任何关于后续数据报的信息。

ICMP:用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。ICMP有多种类型的报文,同一类型的报文会有多个不同的Code(ping、tracert 等命令的内部就是使用ICMP协议)。ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的。

  • 数据链路层:(数据以数据帧的形式存在)

又称为网络接口层和链路层。这层主要完成相邻节点之间数据的可靠传输,提供介质访问和链路管理。

常用的两个协议:ARP(地址解析协议)和RARP(逆地址解析协议),完成48位的MAC地址(物理地址)和ip地址之间的转换。ARP协议将ip地址转为MAC地址,PARP协议将MAC地址转换为ip地址。

划重点:

为什么要分层?

①多层之间相互独立,灵活性好

高层不需要知道底层的功能是采取硬件技术来实现的,只需要知道通过与底层的接口可以获得所需要的服务;

②结构上可分割开来,易于实现和维护

各层都可以采用最适当的技术来实现,如果某一层的实现技术发生了变化,用硬件代替了软件,只要这一层的功能与接口保持不变,实现技术的变化并不会对其他各层以及整个系统的工作产生影响; 

③易于促进标准化工作

采取了规范的层次结构去组织网络功能与协议,可以将计算机网络复杂的通信过程,划分为有序的连续动作与有序的交互过程,有利于将复杂的通信过程分解为一系列可以控制和实现的功能模块,使得复杂的计算机网络系统变得易于设计,易于实现标准化。

 

博客:http协议和https协议的区别

           http协议的请求方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值