网络编程 --OSI七层协议

Posted xt12321

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程 --OSI七层协议相关的知识,希望对你有一定的参考价值。

内容目录:

  • 1.软件开发架构
  • 2.OSI七层协议
  • 3.每层协议介绍

1.软件开发架构

c/s架构:
    c:客户端
    s:服务端
b/s架构:
    b:浏览器
    s:服务器
本质:b/s其实也是c/s
2.OSI七层协议

技术图片

3.各层介绍
3.1 物理层
规定计算机之间物理连接方式,传输的数据都是 0,1 二进制的电信号
3.2 数据链路层("以太网协议"!)
1.规定了二进制数据的分组方式
2.规定了只要是接入物联网的计算机,都必须有一块网卡!
网卡上面刻有世界唯一的编号:
	每块网卡出厂时都被烧制上一个世界唯一的mac地址,
	长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
	管网卡上刻有的编号叫电脑的mac地址
----->上面的两个规定其实就是 "以太网协议"!

基于以太网协议通信:通信基本靠吼(一对多广播形式)
弊端:容易产生广播风暴

交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后,
    所有的电脑只需要有一个网卡连接交换机,即可实现多台电脑之间物理连接
3.3 网络层(IP协议)
规定了计算机都必须有一个ip地址
ip地址特点:点分十进制
    有两个版本ipv4和ipv6 为了能够兼容更多的计算机
    最小:0.0.0.0
    最大:255.255.255.255
IP协议可以跨局域网传输

ip地址能够唯一标识互联网中独一无二的一台机器!
3.4 传输层(端口协议)
TCP,UDP基于端口工作的协议!
其实计算机之间通信其实是计算机上面的应用程序于应用之间的通信
端口(port):唯一标识一台计算机上某一个基于网络通信的应用程序

端口范围:0~65535(动态分配)
	注意:0~1024通常是归操作系统分配的端口号
	通常情况下,我们写的软件端口号建议起在8000之后
	flask框架默认端口5000
	django框架默认端口8000
	mysql数据库默认端口3306
	redis数据库默认端口6379
注意:一台计算机上同一时间一个端口号只能被一个应用程序占用

小总结:
    IP地址:唯一标识全世界接入互联网的独一无二的机器
    port端口号:唯一标识一台计算机上的某一个应用程序
    ip+port :能够唯一标识全世界上独一无二的一台计算机上的某一个应用程序

3.5 应用层
这一层包含常见的 HTTP协议,FTP等协议,也可以自定义一些协议。

(七层协议详细介绍链接:https://www.cnblogs.com/xt12321/p/10666021.html

以上是关于网络编程 --OSI七层协议的主要内容,如果未能解决你的问题,请参考以下文章

读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下

求unix网络编程

请教各位高手在Qt中的网络编程中,怎么接收结构体

TCP/IP网络编程——理解网络编程和套接字编程

网络编程之并发网络编程

网络编程