黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】

网络编程--1

      网络编程概述  网络编程模型

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

1.    网络编程概述

1). 网络编程基础知识

(1). 网络通讯的三要素

[1]. 网络通讯的三要素IP地址端口号传输协议

[2]. 数据通讯原理

数据通讯的原理就是数据传输

(2). IP地址

[1]. IP地址基本含义

IP地址定义网络中设备标识

[2]. 主机名IP地址关系

主机名:单纯的IP地址不容易记忆,可用主机名替代

e.g. 本机回环地址:127.0.0.1  对应的主机名:localhost (默认)

黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】_第1张图片

上图中对127.0.0.1和localhost使用了ping命令,效果是一样的。这证明了本机回环地址127.0.0.1和默认主机名localhost是等效的。

[3]. 特殊IP127.0.0.1简介

{1}. 如果本机上没有配置任何IP地址的情况下,本机默认的IP地址127.0.0.1

{2}. 127.0.0.1地址的用处之一:检验本机网卡是否运行正常

在cmd中输入ping 127.0.0.1之后,如果出现下面的场面,表明本机的网卡运行正常。

黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】_第2张图片

(3). 端口号

[1]. 端口/进程的逻辑地址(port)

端口定义:用于标识进程的数字称为进程逻辑地址,简称为端口号

注意】一台主机上的任何类型的进程(未必是网络进程)具有端口号

黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】_第3张图片

[2]. 端口的有效范围:0~65535 (2Byte长度)

注意】其中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 (因为这是通用的规则)

类比】通讯协议可以类比成两个人之间是用汉语交流还是用英语交流,也就是两个人交流的语言。

2). 根据网络通讯的三要素确定网络通信步骤

(1). 网络通讯的三要素

网络通信的三要素是:IP地址IP上的端口号两台主机之间的传输协议

(2). 网络通讯的步骤

IP--->Port--->确定传输协议

[1]. IP:一台主机找到另一台主机的IP地址

[2]. 端口:确定数据发送到另一台主机指定的应用程序上

[3]. 定义一个通讯规则:这个通讯规则就称为协议

2.    网络模型

1). 网络模型的作用

网络模型知识

[1].网络传输模型诞生的背景

网络传输需要不同的组件协同工作不同的组件工作的时间不同。为了区分哪些组件在什么时候该做什么事,就把这些组件按照层次的形式进行了细致的划分这样的划分诞生了网络传输模型

[2]. 网络传输模型每个层次都有特定的任务要完成

2). OSI参考模型

(1). OSI模型

[1]. OSI全称

Open System Interconnect:开放式系统互联

[2]. OSI模型一共7

应用层、表示层、会话层、传输层、网络层、数据链路层和物理

(2). 两台主机通过OSI模型通讯过程的简述

黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】_第4张图片

[1]. 需求:现在主机1的应用层有一个数据想发给主机2,在底层如何传输?

注意】应用层的数据用一个方框表示

[2]. 我们面对的机器位于应用层

(3). 从主机1向外发送数据

[1]. 向外发送数据过程原始数据根据每层具有的特点协议数据进行层层封装

[2]. 数据在传输封装

{1}. 当向下进行传输层的时候,要根据传输层的特点和协议对从会话层传来的数据进行封装

{2}. 传输层的协议TCPUDP

{3}. 数据传输层被加上TCP/UDP层次信息

[3]. 数据在网络封装

{1}. 网络层的协议IP地址协议

{2}. 数据从传输层进行到网络层的时候,数据被加上一个目标IP地址,用于告知数据运输的终点

[4]. 物理层简介

{1}. 物理层是看得见摸得着媒质

{2}. 物理层的典型设备网线光纤红外或者蓝牙

{3}. 两台主机之间通过网线相连

{4}. 数据传输到物理层的时候,已经被封装成数据包。此时物理层数据传输出去

{5}. 数据包通过连接在两台主机之间的物理层介质一台主机传向另一台主机

(4). 主机2接收数据

[1]. 从外接收数据过程数据包根据每层具有的特点协议数据包进行层层拆封

[3]. 数据在应用拆封以及数据的最终去向

{1}.首先应用层数据包拆开,获得原始数据其他的相关信息 (包含该数据应该发送到本台主机的那一个具体端口)

{2}. 根据端口号原始数据发送到本机指定的端口对应的应用程序上。

(5). 数据的封包和数据的拆包

[1]. 从应用层物理层对数据的传输过程中,是对数据的封包

[2]. 从物理层应用层对数据的传输过程中,是对数据的拆包

3). TCP/IP参考模型

(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模型的对应关系

黑马程序员--10.网络编程--01.【网络编程概述】【网络编程模型】_第5张图片

(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         互联网协议

3). Java中涉及的网络编程和网络传输模型的关系

(1). 主机至网络层

这一层主要和硬件打交道,不属于软件开发的范围

(2). Java中的网络编程是在TCP/IP中的传输层网络层进行开发

(3). Java Web进行的程序开发是在TCP/IP中的应用层进行开发

应用层基于传输层网络层,使用起来 更加便捷

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

 

你可能感兴趣的:(Java基础)