网络编程之OSI七层协议略析
OSI七层协议


1 物理连接层
用高低电平模拟二进制数0101
2 数据链路层
以太网协议,Ethernet,要求连入网络的计算机必要要有一块网卡,并且规定全球每一块网卡的mac
地址都不一样,用12位十六进制数表示,前六位表示生产厂商,后六位表示流水线号
以太网协议的数据传输部分分为报头和数据部分,报头有18个字节组成,前6个字节为自己的mac地址,
中间6个字节是对方mac地址,后6个字节表示数据类型
以太网协议通信基本靠吼,一台机器想要和另外一台机器通信,同局域网内所有机器都能收到发包,其他
机器收到包后会拆包查看是否是属于自己的包,如果不是则丢弃,如果是则读取数据并回应,如果世界范
围的机器都像这样通信将是一场灾难,这就是广播风暴
知识点:以太网协议通信只能在局域网中,不能跨局域网通信
3 网络层
IP协议,如何实现跨局域网络通信,于是乎诞生了IP协议,IP协议规定了每台计算机都有一个IP地址,
IP协议通信的数据传输部分也分为报头和数据部分,报头占20-60个字节,内部包含了IP版本号、自己
IP,目标IP等等数据,数据部分就是包含以太网协议中的所有内容,长度限制1500字节,超过1500字节的
数据将分片发送,IP分片是没有校验机制的,所有是不可靠传输,所以在传输层的数据尽可能避免到IP层分片
IP协议通信通过网关统一对外局域网进行联系
4 传输层(端口协议)
TCP/UDP协议是基于端口工作的协议
TCP协议遵循3次握手4次挥手原则,每次传输数据需等到对方回应后才会把数据从内存中删除,是一种可靠协议
TCP协议工作原理

port:端口,每台计算机的端口编号由0~65535组成,前1023个端口号由操作系统占用
flask框架默认端口:5000
Django框架默认端口:8000
MySQL数据库默认端口:3306
redis数据库默认端口:6379
在一台计算机上,同一时间同一端口只能有一个应用程序占用
总结:IP能唯一的表示互联网中的某一台计算机,port能唯一的表示一台计算机上的一个应用程序
所以IP+PORT就可以唯一的表示互联网中某台计算机上的某个应用程序
补充:ARP协议的作用:通过IP地址解析MAC地址
5 应用层
HTTP,FTP等协议
网络编程之OSI七层协议略析的更多相关文章
- 网络编程之 OSI七层协议
内容目录: 1.软件开发架构 2.OSI七层协议 3.每层协议介绍 1.软件开发架构 c/s架构: c:客户端 s:服务端 b/s架构: b:浏览器 s:服务器 本质:b/s其实也是c/s 2.OSI ...
- 网络编程之OSI七层协议
七层协议: 应用层 表示层 会话层 传输层 网络层 数据连接层 物理连接层 1.物理连接层: 实现计算机之间物理连接,传输的数据都是010101的二进制 电信号工作原理:电只有高低电频 2.数据链路层 ...
- 网络编程、OSI七层协议
目录 软件开发架构 1.什么是软件开发架构 2.软件开发架构 3.架构优劣势 4.架构发展趋势 网络编程简介 1.如何理解网络编程 2.网络编程的目的 3.网络编程的意义 4.网络编程的起源 5.网络 ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协议的套接字 ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- 网络框架,互联网的组成,OSI七层协议,抽象层
6.25自我总结 1.网络框架 1.单机 单机游戏 以下两个基于网络的 2.CS架构 cs--->client客户/server服务 服务端(应用程序)一个就够了,客户端(应用程序)可以有多个 ...
- 网络编程网络协议篇(osi七层协议)
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...
- 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议
Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...
- 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层
目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...
随机推荐
- eclipse的springboot插件
eclipse的springboot插件官网下载地址还喜欢捉迷藏,正确的下载路径修改方法: 点击zip,然后复制出官网路径如下 http://download.springsource.com/rel ...
- react-router 4.0(四)跳转404
import React from 'react' import ReactDOM from 'react-dom' import { HashRouter, Route, Link, Prompt, ...
- malloc/free 和 new/delete
(本文参考于网上) 首先两者都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,只用malloc/free无法满足动态对象的要求.对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执 ...
- 整合MyBatis(springboot)
pom文件: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>m ...
- 2019清明期间qbxt培训qwq
4.4上午:数学基础 (qwq整成word和cpp了,它居然不能直接把文档附上来) part 1:高精度运算 高精加和高精减就不说了,之前写过博客了qwq,讲一讲高精乘和高精除吧. 1.高精度乘法(不 ...
- input 文本框自动显示光标
使用$("#votetitle").focus();没起作用 使用document.getElementById("votetitlechild").focus ...
- spring cloud(三)服务提供与调用
服务提供 我们假设服务提供者有一个hello方法,可以根据传入的参数,提供输出“hello xxx,this is first messge”的服务 1.pom包配置 创建一个springboot项目 ...
- 使用pca/lda降维
PCA主成分分析 import numpy as np import pandas as pd import matplotlib.pyplot as plt # 用鸢尾花数据集 展示 降维的效果 f ...
- 【C/C++】泛型栈
用 C 语言实现泛型栈 mystack.h #ifndef __MYSTACK_H__ #define __MYSTACK_H__ #include <assert.h> // C sty ...
- CloudStack学习-1
环境准备 实验使用的虚拟机配置 Vmware Workstation 虚拟机系统2个 系统版本:centos6.6 x86_64 内存:4GB 网络:两台机器都是nat 磁盘:装完系统后额外添加个50 ...