物理层 / 数据链路层 / 网络层 / 传输层 / 应用层(表示层/会话层)

一 物理层

物理层指的就是网线,光纤, 双绞线等物理传输介质

物理层发送的是数据(比特流)

二 数据链路层

数据链路层对数据进行分组

以太网协议:对数据进行合理的分组

一组数据构成一个数据报,又叫一帧

每一个数据报分为: 报头head和数据data两部分

head包含: 源地址(6个字节) 目标地址(6个字节) 数据类型(6个字节)

data包含: 数据报的具体内容(最短46字节,最长1500字节)

mac地址: 计算机网卡上标注的地址,12位16进制数组成(前六位是厂商编号,后六位是流水线号)

计算机的通信方式: 同一个局域网内,通过广播的形式通信.

消息一经广播发出,局域网所有的计算机都能接收到消息,分析消息,是否是找我的,不是就丢弃

计算机只能在局域网内进行广播: 范围大了就会造成广播风暴,效率极低

交换机的mac地址自主学习功能:

同一局域网内: 第一次发送数据, 需要广播的形式,获取对方的mac地址,将mac地址与网口写入交换机的对照表; 第二次发送数据(计算机与网口没更换),单播发送,直接从mac对照表寻找对方的地址

三 网络层

3.1 IP协议

IP协议: 确定局域网(子网)的位置.

IP字段: 四分段十进制 192.168.0.12

取值范围:0~255.0~255.0~255.0~255

子网掩码: C类子网掩码: 255.255.255.0

ip地址 + 子网掩码 按位 与运算 计算出是否在统一局域网(子网,网段).

C类子网掩码 一个网段最多可以承载256个IP地址:

172.168.10.0 网关占用

172.16.10.255 广播地址占用

最多连接254台计算机

3.2 ARP协议

ARP协议: 广播的方式发送数据报, 通过对方的IP地址获取到对方的mac地址.

四 传输层

传输层功能:建立端口到端口的通信

端口范围0-65535,0-1023为系统占用端口

端口协议: 确定软件在计算机的位置

UDP / TCP 协议

TCP: 可靠的,面向连接的协议, 流式协议, 传输效率低全双工通信,面向字节流. 使用TCP的应用:Web浏览器;文件传输程序。

UDP:不可靠的,无连接的服务, 用户数据报协议, 传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

TCP协议的三次握手和四次挥手:

三次握手:(建立连接)

四次挥手:(断开连接)

syn洪水攻击:制造大量的假的无效的IP请求服务器.致使正常的IP访问不了服务器.

7.3.5 应用层

应用层功能:规定应用程序的数据格式。

软件自己定的协议

广播(局域网内) + mac地址(计算机位置) + IP(局域网的位置) + 端口(软件在计算机的位置)

有了以上四个参数:就可以确定世界上任何一个计算机的软件的位置

网络编程~~~osi五层协议的更多相关文章

  1. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

  2. C#网络编程之---TCP协议的同步通信(二)

    上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的 ...

  3. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  4. 网络编程-osi七层

    一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...

  5. 网络编程OSI介绍

    网络编程 软件开发架构 c/s架构(client/server) c:客户端 s:服务端 客户端和服务器端架构,这种架构是从用户层划分的,一般客户端就是在用户电脑上安装的应用程序,而服务端就是公司里的 ...

  6. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  7. 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

    Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...

  8. C#网络编程之--TCP协议(一)

    TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...

  9. iOS UI高级之网络编程(HTTP协议)

    HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...

随机推荐

  1. 微信 电脑版 HOOK(WeChat PC Hook)- 定位dll获取数据和调用功能的地址

    方案一:CE搜索内存数据,OD断点查看堆栈方案二:使用旧版本的特征码,在新版本搜索方案三:借鉴WeTool的dll,用ida分析获取地址方案四:ida静态分析微信,看字符串和输出日志 源码: http ...

  2. 对于prim的一个有趣但有点奇怪的想法

    prim算法找最小生成树适用于无向图,对于有向加权图会产生错误. 比如 1->2,8 1->3,8 2->3,4 3->2,3 最小生成树1->2->3 而不是3- ...

  3. 【解决】Failed to restart network.service: Unit network.service not found.

    问题:使用systemctl restart network 或 service network restart 命令重启网卡失败. 分析:原因其实也很简单,命令用错了,造成了找不到相应的网卡服务. ...

  4. 算法设计与分析——n后问题(回溯法+位运算)

    一.问题描述 在n×n格的国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 二.算法设计 解n后问题的回溯算法描述如下: #include ...

  5. Fiddler抓取内容自动保存本地

    Fiddler抓取内容自动保存本地 一.点击FidderScript 二.选择你想要的获得内容的方法 OnBeforeRequest:发送请求后 OnBeforeResponse:获得响应 三.修改j ...

  6. ELK日志分析系统(1)-基本环境搭建

    1. 概述 ELK = Elasticsearch + Logstash + Kibana Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和J ...

  7. PHP 日期之间所有日期

    /** * 获取起止日期之间所有日期 * @param $sdate * @param $edate * @return array */ function get_dates($sdate, $ed ...

  8. latex 添加Bibtex 全解(使用TeXstudio)

    前提知识: 生成pdf的一般流程 在使用Latex之前,我们一般会借用已有的论文模板,在模板基础上加入我们自己的文章内容,随后编译成PDF文件,其基本流程就是:Latex->Bibtex-> ...

  9. iOS-关于自定义分段选择器的一些小事(Segmented)

    系统自带的分段选择就是 UISegmentedControl ,也有一些大佬自定义的 Segmented ,比如Git上的 HMSegmentedControl ,我以前最初的项目中,也有用到过,如果 ...

  10. C++ map insert 另一个map的子集

    C++map中 会有insert操作,举个例子 存在map A,我们截取一部分到map B中,void insert (InputIterator first, InputIterator last) ...