day25-2 OSI协议和socket抽象层
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抽象层的更多相关文章
- 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层
目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...
- TCP协议和socket API 学习笔记
本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类: 原文地址:TCP协议和socket API 学习笔记 作者:gilb ...
- Android网络编程系列 一 Socket抽象层
在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...
- Socket抽象层
目录 一.Socket抽象层 一.Socket抽象层 我们知道两个进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一 ...
- TCP/IP协议和socket
1.传输层基于tcp协议的三次握手和四次挥手? 传输层有两种数据传输协议,分别为TCP协议和UDP协议,其中TCP协议为可靠传输,数据包没有长度设置,理论可以无限长,而UDP协议为不可靠传输,报头一共 ...
- OSI协议和TCP/IP协议笔记
1.OSI协议: 第7层应用层:OSI中的最高层.是用户与网络的接口.该层通过应用程序来完成网络用户的应用需求,如文件传输.收发电子邮件等.在此常见的协议有:HTTP,HTTPS,FTP,TELNET ...
- Http TCP/IP协议和socket之间的区别和联系
总结,TCP/IP是传输层协议,主要解决数据如何在网路中传输,socket是TCP/IP协议的具体实现,是对TCP/IP协议的封装和应用,属于程序员层面,HTTP是应用层协议,应用层协议很多,类似的像 ...
- 关于网络协议和socket编程基本概念
TCP协议可以说已经是IT人耳熟能详的协议,最近在学习socket网络编程时后重新温习一下这个协议,针对一些问题做了一些总结,很多理解可能还不是很准确. 1. 协议是什么?所谓的各种网络协议无非是一种 ...
- 【1】HTTP协议和Socket接口区别
内容提要: 1.网络七层模型 2.什么是HTTP协议 3.什么是Socket接口 1.网络七层模型 第一层:物理层 为设备之间的信息提供传输提供可靠环境,那么这个环境是什么呢? 如:同轴电缆,插头,接 ...
随机推荐
- 第一个Java程序示例——Hello World!【转】
本文转载自: 跟随世界潮流,第一个Java程序输出“Hell World!”. 通过Eclipse运行程序 启动Eclipse,在菜单中选择“文件 --> 新建 --> Java项目”,弹 ...
- EF1:MVC/EF(Entity Framewok) /First Migrations
1. 概念 Entity Framework: ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.(此处 ...
- Linux设备模型 (1)
随着计算机的周边外设越来越丰富,设备管理已经成为现代操作系统的一项重要任务,这对于Linux来说也是同样的情况.每次Linux内核新版本的发布,都会伴随着一批设备驱动进入内核.在Linux内核里,驱动 ...
- math.floor()函数的用法
floor() 返回数字的下舍整数. 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是不能直接访问的,需要导入 math 模块 ...
- VS2010 AnkhSvn
有时候打开别的项目用的是 TFS等 造成 VS本来用的AnkhSvn失效了 .工具---选项----插件选择---
- P4949 最短距离(树链剖分+树状数组+基环树)
传送门 一个中午啊-- 本来打算用仙人掌搞的,后来发现直接基环树就可以了,把多出来的那条边单独记录为\((dx,dy,dw)\),剩下的树剖 然后最短路径要么直接树上跑,要么经过多出来的边,分别讨论就 ...
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...
- VK Cup 2018 - Round 1 A. Primal Sport
A. Primal Sport time limit per test 1.5 seconds memory limit per test 256 megabytes input standard i ...
- C#关于html颜色值的转化 ColorTranslator
//颜色转换非常重要快速的转换类. ColorTranslator.FromHtml (); //从html字符串得到颜色 ColorTranslator.ToHtml();
- IOS编译报错:objc-class-ref in AppDelegate.o之解决方案 Xcode7
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_QQApiInterface", referenced from ...