OSI协议

互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),互联网由硬件和软件组成,传输数据只能传输电信号0和1,OSI协议就是把0和1从无意义的东西变成有意义的东西。。

按照功能不同,分工不同,人为的分层七层。每一层都运行不同的协议,还有人把它划成五层、四层。

七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

五层划分为:应用层、传输层、网络层、数据链路层、物理层。

四层划分为:应用层、传输层、网络层、网络接口层。

每层运行常见的无论设备

物理层

  • 用于计算机与计算机之间传输数据,如光缆/网线:传输信号,连接两台计算机

  • 客户端将011111001111100111110011111001111100111110011111传输给服务端

数据链路层

  • 数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思
  • 数据链路层的功能:定义了电信号的分组方式

以太网协议

ethernet规定:一组电信号构成一个数据报,叫做'帧',每一数据帧分成:报头head和数据data两部分

  • head包含:(固定18个字节)

    • 发送者/源地址,6个字节
    • 接收者/目标地址,6个字节
    • 数据类型,6个字节
  • data包含:(最短46字节,最长1500字节)
  • 数据报的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

Mac地址

ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址

  • Mac地址:每块网卡出厂时都被烧制上一个世界唯一固定不变的Mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

广播地址

你一定知道自己的mac地址,还有收件人的mac地址,在局域网内通过某一台设备(交换机),但是交换机不知道mac地址对应的计算机是哪一台,交换机就会以广播的形式发送给所有的计算机,收件人的计算机收到了就会解析这条命令,拿到内容了。之后交换机会记录两个mac地址

网络层

  • 让不同局域网下面的计算机连接在一起
  • ip地址:mac地址无法连接其他局域网内的计算机,因为mac地址只被交换机识别,然后不同局域网的交换机不一样,所以现在定义一个新的地址表明是哪个局域网
  • Mac地址是用来标识你这个教室的某个位置,IP地址是用来标识你在哪个教室(哪个局域网),mac地址(局域网)+IP地址(互联网)就能找到全世界独一无二的电脑

数据链路层中会把网络层的数据包封装到数据链路层的数据位置,然后再添加上自己的包头,再发给物理层,物理层发给网关,网关再发给对方教室的网关,对方教室的网关收到后在那个教室做广播。

获取对方Mac地址(ARP协议)

局域网内获取对方Mac地址:

  • 目标Mac:12个F代表的是一种功能,这个功能就是获取对方的Mac地址
  • 通过广播的方式发送,只有IP地址是172.16.10.11的人返回它的Mac地址,其它人全部丢弃
  • 发回来的源Mac改成目标IP的Mac地址,同时把Mac地址放在数据部分

跨网络获取对方Mac地址:

目标IP就变成了网关的IP。网关的IP在计算机上配死了,可以轻松获取

注意:网关帮你去找飞哥,但对用户来说,由于速度太快我们根本就感觉不到网关的存在。

传输层

  • 网络层的IP帮我们区分子网,以太网层的Mac帮我们找到主机,端口号用来找到一个固定的应用程序
  • 端口:即应用程序与网卡关联的编号
  • 传输层功能:建立端口到端口的通信

补充:端口范围0-65535,0-1023为系统占用端口,Mac地址+IP地址+端口,就能确定世界上独一无二的一台计算机上的应用程序

TCP协议

  • 可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

UDP协议

  • 不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

应用层

  • 应用层功能:规定应用程序的数据格式,将0和1转换成具体的功能

socket抽象层

客户端和服务端的应用程序想通信,两者传输的数据必须是一样的。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

day25-2 OSI协议和socket抽象层的更多相关文章

  1. 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层

    目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...

  2. TCP协议和socket API 学习笔记

    本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类:  原文地址:TCP协议和socket API 学习笔记 作者:gilb ...

  3. Android网络编程系列 一 Socket抽象层

     在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...

  4. Socket抽象层

    目录 一.Socket抽象层 一.Socket抽象层 我们知道两个进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一 ...

  5. TCP/IP协议和socket

    1.传输层基于tcp协议的三次握手和四次挥手? 传输层有两种数据传输协议,分别为TCP协议和UDP协议,其中TCP协议为可靠传输,数据包没有长度设置,理论可以无限长,而UDP协议为不可靠传输,报头一共 ...

  6. OSI协议和TCP/IP协议笔记

    1.OSI协议: 第7层应用层:OSI中的最高层.是用户与网络的接口.该层通过应用程序来完成网络用户的应用需求,如文件传输.收发电子邮件等.在此常见的协议有:HTTP,HTTPS,FTP,TELNET ...

  7. Http TCP/IP协议和socket之间的区别和联系

    总结,TCP/IP是传输层协议,主要解决数据如何在网路中传输,socket是TCP/IP协议的具体实现,是对TCP/IP协议的封装和应用,属于程序员层面,HTTP是应用层协议,应用层协议很多,类似的像 ...

  8. 关于网络协议和socket编程基本概念

    TCP协议可以说已经是IT人耳熟能详的协议,最近在学习socket网络编程时后重新温习一下这个协议,针对一些问题做了一些总结,很多理解可能还不是很准确. 1. 协议是什么?所谓的各种网络协议无非是一种 ...

  9. 【1】HTTP协议和Socket接口区别

    内容提要: 1.网络七层模型 2.什么是HTTP协议 3.什么是Socket接口 1.网络七层模型 第一层:物理层 为设备之间的信息提供传输提供可靠环境,那么这个环境是什么呢? 如:同轴电缆,插头,接 ...

随机推荐

  1. Apache POI组件操作Excel,制作报表(四)

    Apache POI组件操作Excel,制作报表(四) 博客分类: 探索实践 ExcelApacheSpringMVCServlet      上一篇我们介绍了如何制作复杂报表的分析和设计,本篇结合S ...

  2. 【CJOJ】Contest4 - A+B Series

    Position:http://oj.changjun.com.cn/contest.php?cid=4 A经典题目 // <A.cpp> - Sun Oct 9 15:28:01 201 ...

  3. mac toad下建表问题

    mac toad下创建表,表名会自动多一个双引号,如:tb_test => "tb_test",这个应该是mac系统智能引号问题导致的,目前还没找到解决办法,只能手动用sql ...

  4. 四:多线程--NSOperation简单介绍

    一.NSOperation简介 1.NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQu ...

  5. 并不对劲的manacher算法

    有些时候,后缀自动机并不能解决某些问题,或者解决很麻烦.这时就有各种神奇的字符串算法了. manacher算法用来O(|S|)地求出字符串S的最长的回文子串的长度.这是怎么做到的呢? 并不对劲的暴力选 ...

  6. BZOJ_2286_[Sdoi2011]消耗战_虚树+树形DP+树剖lca

    BZOJ_2286_[Sdoi2011]消耗战_虚树+树形DP Description 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的 ...

  7. Image2Caption

    定义 图像标注或语言生成图像问题把计算机视觉与自然语言处理联系在了一起,是广义的人工智能领域的一大难题.通常涉及到特征提取(用cnn提取出图像内部不为人类感知的向量特征)和语言模型建立.为图像提取文字 ...

  8. MySQL 三种关联查询的方式: ON vs USING vs 传统风格

    看看下面三个关联查询的 SQL 语句有何区别? 1SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) 2 ...

  9. mysql同步延迟导致的问题

    前几天又遇到一个mysql读写分离的坑, 在将数据写入master后,因为存在同步延迟,所以如果立马去从库查询刚刚插入的数据可能会出现查询不到数据的情况, 解决办法:强制从主库读取数据,将插入和查询放 ...

  10. bzoj 2876: [Noi2012]骑行川藏【拉格朗日乘数法+二分】

    详见: http://blog.csdn.net/popoqqq/article/details/42366599 http://blog.csdn.net/whzzt/article/details ...