----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
(1). 网络通讯的三要素
[1]. 网络通讯的三要素:IP地址、端口号和传输协议
[2]. 数据通讯的原理
数据通讯的原理就是数据传输
(2). IP地址
[1]. IP地址基本含义
IP地址定义:网络中设备的标识
[2]. 主机名和IP地址的关系
主机名:单纯的IP地址不容易记忆,可用主机名替代
e.g. 本机回环地址:127.0.0.1 对应的主机名:localhost (默认)
上图中对127.0.0.1和localhost使用了ping命令,效果是一样的。这证明了本机回环地址127.0.0.1和默认主机名localhost是等效的。
[3]. 特殊IP:127.0.0.1简介
{1}. 如果本机上没有配置任何IP地址的情况下,本机默认的IP地址为127.0.0.1
{2}. 127.0.0.1地址的用处之一:检验本机网卡是否运行正常
在cmd中输入ping 127.0.0.1之后,如果出现下面的场面,表明本机的网卡运行正常。
(3). 端口号
[1]. 端口/进程的逻辑地址(port)
端口定义:用于标识进程的数字称为进程的逻辑地址,简称为端口号
【注意】一台主机上的任何类型的进程(未必是网络进程)都具有端口号
[2]. 端口的有效范围:0~65535 (2个Byte的长度)
【注意】其中0~1024是系统保留端口号
[3]. 常用的端口号
{1}. Web服务器端口:80 (位于0~1024之间)
{2}. Tomcat服务器端口:8080
{3}. MySQL数据库端口:3306
[4]. 一个网络应用程序可以对应一个或者多个端口号
e.g. Chrome进程就是google浏览器应用程序。这个网络进程对应了多个端口号
【类比】如果将IP比作一座大厦,端口port就是大厦中的一间屋子
[5]. 网卡口(物理端口)和进程端口(逻辑端口)
{1}. 进程的端口含义是进程的逻辑地址,用于标识进程。
{2}. 网卡口是物理上的端口。
[6]. 网卡口和进程端口的关系
{1}. 网卡口可以接收到多种类型网络数据
{2}. 之后网卡口会把接收到的数据发送给本机中不同类型的网络应用程序
[7]. 网络应用程序必须有数字标识 (也就是端口)。这样外面的应用程序才会将数据发送到该标识对应的网络应用程序上。
(4). 传输协议
[1]. 传输协议 (Transmission Protocol:简称TP)
{1}. 传输协议是通信的规则
{2}. 常见的传输协议:TCP、UDP、HTTP、FTP
[2]. TCP/IP协议简介
{1}. 国际组织通用的传输协议:TCP/IP协议
{2}. 几乎所有类型的操作系统 (OS) 都安装了这个协议。
{3}. TCP/IP协议既可以用于LAN,又可以用于WAN (因为这是通用的规则)
【类比】通讯协议可以类比成两个人之间是用汉语交流还是用英语交流,也就是两个人交流的语言。
(1). 网络通讯的三要素
网络通信的三要素是:IP地址、IP上的端口号和两台主机之间的传输协议
(2). 网络通讯的步骤
找IP--->定Port--->确定传输协议
[1]. 找IP:一台主机找到另一台主机的IP地址
[2]. 定端口:确定数据发送到另一台主机指定的应用程序上
[3]. 定义一个通讯规则:这个通讯规则就称为协议
网络模型知识
[1].网络传输模型诞生的背景
网络传输需要不同的组件协同工作。不同的组件工作的时间不同。为了区分哪些组件在什么时候该做什么事,就把这些组件按照层次的形式进行了细致的划分,这样的划分就诞生了网络传输模型。
[2]. 网络传输模型的每个层次都有特定的任务要完成
(1). OSI模型
[1]. OSI全称
Open System Interconnect:开放式系统互联
[2]. OSI模型一共7层
应用层、表示层、会话层、传输层、网络层、数据链路层和物理层
(2). 两台主机通过OSI模型通讯过程的简述
[1]. 需求:现在主机1的应用层有一个数据想发给主机2,在底层如何传输?
【注意】应用层的数据用一个方框表示
[2]. 我们面对的机器位于应用层
(3). 从主机1向外发送数据
[1]. 向外发送数据的过程将原始数据根据每层具有的特点和协议对数据进行层层封装。
[2]. 数据在传输层的封装
{1}. 当向下进行到传输层的时候,要根据传输层的特点和协议对从会话层传来的数据进行封装
{2}. 传输层的协议是TCP和UDP
{3}. 数据在传输层被加上TCP/UDP的层次信息
[3]. 数据在网络层的封装
{1}. 网络层的协议是IP地址协议
{2}. 数据从传输层进行到网络层的时候,数据被加上一个目标IP地址,用于告知数据运输的终点。
[4]. 物理层简介
{1}. 物理层是看得见摸得着的媒质。
{2}. 物理层的典型设备是网线、光纤、红外或者蓝牙
{3}. 两台主机之间通过网线相连
{4}. 数据传输到物理层的时候,已经被封装成数据包。此时物理层将数据传输出去。
{5}. 数据包通过连接在两台主机之间的物理层介质,从一台主机传向另一台主机
(4). 主机2接收数据
[1]. 从外接收数据的过程将数据包根据每层具有的特点和协议对数据包进行层层拆封。
[3]. 数据在应用层的拆封以及数据的最终去向
{1}.首先应用层将数据包拆开,获得原始数据和其他的相关信息 (包含该数据应该发送到本台主机的那一个具体端口)
{2}. 根据端口号将原始数据发送到本机指定的端口对应的应用程序上。
(5). 数据的封包和数据的拆包
[1]. 从应用层到物理层对数据的向下传输过程中,是对数据的封包
[2]. 从物理层到应用层对数据的向上传输过程中,是对数据的拆包
(1). TCP/IP参考模型和OSI参考模型的关系
[1]. TCP/IP是对OSI模型的简化,进行了两次合并
{1}. 第一次合并:将OSI的应用层、表示层和会话层合并成TCP/IP的应用层
{2}. 第二次合并:将OSI的数据链路层和物理层合并成TCP/IP的主机至网络层
[2]. TCP/IP模型的由来
两次合并之后,凸显了OSI的传输层和网络层,其余的层全部进行了整合。这样分别就凸显了传输层和网络层的协议:TCP/UDP协议和IP地址协议。这样OSI简化后四层模型就称为TCP/IP参考模型。
(2). TCP/IP模型和OSI模型的对应关系
(3). TCP/IP主要的协议
[1]. 应用层主要有HTTP地址协议和FTP协议
{1}. HTTP协议:Hyper Text Transmission Protocol 超文本传输协议
{2}. FTP协议:File Transmission Protocol 文件传输协议
[2]. 传输层主要有UDP协议和TCP协议
{1}. UDP协议:User Datagram Protocol 用户数据报协议
{2}. TCP协议:Transmission Controllable Protocol 传输控制协议
[2]. 网际层主要有IP地址协议
IP地址协议:Internet Protocol 互联网协议
(1). 主机至网络层
这一层主要和硬件打交道,不属于软件开发的范围。
(2). Java中的网络编程是在TCP/IP中的传输层和网络层进行开发
(3). Java Web进行的程序开发是在TCP/IP中的应用层进行开发
应用层是 基于传输层和 网络层,使用起来 更加便捷。----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------