tcp/ip 五层模型讲解

越靠底层就越接近硬件,越靠上层越接近用户。先从底层看起,理解整个互联网通信的原理。

物理层(传输电信号)

孤立的计算机想要一起玩。就必须用硬件在计算机之间完成组网。以硬件做为介质来传输。
物理层:

  • 光缆
  • 电缆
  • 双绞线

功能:主要是发生高低电压(电信号)。高电压对应1,低电压对于0。

数据链路层(ARP协议)

物理层传来的单纯的电信号0和1没任何意义。必须规定电信号多少位一组,每组代表什么意思。
功能:定义了电信号分组方式。

规定

  • 一组电信号构成一个数据包,叫做帧。
  • 每一组数据帧,包含head 和 数据data 两部分

head(固定18个字节)

  • 发送者/原地址:6个字节
  • 接收者/目标地址:6个字节
  • 数据类型:6个字节

data(46-1500字节)

  • 数据包的具体内容

mac 地址

  • head包含的目标地址和原地址就是网卡的地址,即mac地址
  • 每块网卡出厂时都被烧制一个世界上唯一的mac地址,长度为48位二进制,通常由12位16进制数表示
  • 前6位是厂商编号、后六位是流水线编号

广播

  • 有了mac地址两台计算机就能通信了。通过ARP协议获取另外一台计算机的mac地址,以广播的方式进行通信,即靠吼。
  • 收到数据包之后拆包,在head部分发现对方发来的目标地址不是自己的就丢弃,是自己的就响应。

ARP协议

  • 功能:广播的方式发生数据包,获取目标主机的mac地址。
  • 协议工作方式:每台主机ip都是已知的

网络层(IP协议)

之前有了Ethernet、mac地址、广播的方式。世界上的计算机就能彼此通信,问题是世界范围内的互联网是由一个个小小的隔离的局域网组成,那么如果所有的通信都采用以太网的广播方式,那么一台机器发生的包全世界都会收到,这不仅仅是效率的问题,这更会是一场灾难。
所以,网络层就出现了。必须有一种方法来区分哪些计算机属于同一个域,哪些不是。如果是就采用广播的方式,如果不是,就采用路由的方式。
功能:引入一套新的地址来区分不同的广播域/子网,这套地址即网络地址。

IP协议

  • 它定义的地址叫做ip地址,广泛采用iPv4,它规定用32位二进制表示
  • 范围:0.0.0.0 - 255.255.255.255
  • 一个ip地址通常写成4段十进制数:192.168.0.1

组成

  • 网络部分:标识子网
  • 主机部分:标识主机
  • 注意:单纯的ip地址段只是标识了ip地址的种类,根据网络部分或主机部分并不能判断二者是否处于同一子网。

子网掩码

所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

知道子网掩码就可以判断,任意两个ip是否处于同一子网络。将两个ip地址与子网掩码分别进行and运算(两个数位加1,运算结果都是1则为1,,否则为0),最后比较结果即可。

ip数据包

  • head
  • data
  • 直接放在以太网包的data部分。

传输层(TCP和UDP协议)

网络层的IP协议帮我们区分子网,数据链路层的ARP协议帮我们区分mac地址找到主机。然后大家用的却是应用程序,比如说腾讯QQ、爱奇艺...
怎么知道找到主机的应用程序呢,答案就是端口。

功能:建立端口与端口之间的通信

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

应用层(http协议、ftp协议、https协议)

用户使用的都是应用程序,均工作与应用层,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的形式。

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

002---tcp/ip五层详解的更多相关文章

  1. TCP/IP协议详解概述

    TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...

  2. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  3. TCP/IP协议详解---概述

        工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...

  4. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  5. iOS中 HTTP/Socket/TCP/IP通信协议详解

    // OSI(开放式系统互联), 由ISO(国际化标准组织)制定 // 1. 应用层 // 2. 表示层 // 3. 会话层 // 4. 传输层 // 5. 网络层 // 6. 数据链接层 // 7. ...

  6. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 简单介绍: // OSI(开放式系统互联), 由ISO(国际化标准组织)制定 // 1. 应用层 // 2. 表示层 ...

  7. TCP/IP头部详解

    在网上找了很多有关tcp/ip头部解析的资料,都是类似于下面的结构 抽象出图文是这种结构,但是在底层中数据到底是怎么传输的呢?没有答案,在深入学习之后,总结出数据传输的方式 IP数据包头部格式: 上面 ...

  8. 003 TCP/IP协议详解(二)

    一.ping ping可以说是ICMP的最著名的应用,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 例如:当我们某一 ...

  9. TCP/IP模型详解

    上述为TCP/IP的协议模型,主机到网络层又被称为网络接口层,网络互联层又被称为网间层. 网络接口层:实际上,TCP/IP参考模型并没有真正描述这一层的实现,只是要求能够提供给其上层一个访问接口,以便 ...

随机推荐

  1. 关于git stash的应用总结

    Step1 新增 git stash save -a "message" // 对于在项目里加入了代码新文件的开发来说,-a选项才会将新加入的代码文件同时放入暂存区 类似于 git ...

  2. 笨办法学Python(三十九)

    习题 39: 列表的操作 你已经学过了列表.在你学习“while 循环”的时候,你对列表进行过“追加(append)”操作,而且将列表的内容打印了出来.另外你应该还在加分习题里研究过 Python 文 ...

  3. 用PHP向数据库中实现简单的增删改查(纯代码)

    <?php $con = mysql_connect("localhost:3306","root",""); if (!$con) ...

  4. 前端开发css禁止选中文本

    在我们日常的Java web前端开发的过程中呢,程序员们会遇到各种各样的要求,所以不每天学的东西感觉自己都退步了,都更不上时代的发展了. 每天应对各种需求,每天活在疑问中就是我们程序员的真是写照.但我 ...

  5. 2019年5月训练记录(更新ing)

    前言 \(ZJOI\)正式结束了. 但期中考试只考了年级\(216\),退役既视感... 于是就被抓回去补文化课了. 下半个学期可能要以文化课为主了吧! 但周三.周日应该还是会正常参加训练的,但其他时 ...

  6. hack-checkbox

    checkbox选择按钮要用我们自己的样式,看到这个的时候,很可能会以为需要checkbox才能实现,用css可能很难.其实狠简单. <style> .checkbox input{ di ...

  7. AFN 切换BaseUrl

    在某个特定的接口需要修改baseurl时: 直接使用kvc: [_sessionManager setValue:[NSURL URLWithString:NEW_BASE_URL] forKey:@ ...

  8. (转)理解YOLOv2训练过程中输出参数含义

    最近有人问起在YOLOv2训练过程中输出在终端的不同的参数分别代表什么含义,如何去理解这些参数?本篇文章中我将尝试着去回答这个有趣的问题. 刚好现在我正在训练一个YOLOv2模型,拿这个真实的例子来讨 ...

  9. 【luogu P2746 [USACO5.3]校园网Network of Schools】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2812 注意:判断出入度是否为0的时候枚举只需到颜色的数量. 坑点:当只有一个强连通分量时,不需要再添加新边. ...

  10. 【luogu P4711 「化学」相对分子质量】 题解

    题目链接:https://www.luogu.org/problemnew/show/P4711 要细心模拟 #include <cstdio> #include <algorith ...