您的位置:首页 > 理论基础 > 计算机网络

Java中有关网络编程知识点(包含OSI模型、网络协议和网络通信)

2020-03-08 13:57 1101 查看

文章目录

  • 二、网络编程
  • 一、计算机网络

    概述:计算机网络 = 通信技术 + 计算机技术
    可以说,计算机网络就是一种通信网络。它是互连的、自治的计算机集合。
    问题:距离远、数量大如何保证互连?通过交换网络互连主机。交换节点(路由器或交换机)

    1.1 ISP互联网服务提供商

    全球最大的互联网络:ISP(Internet Service Provider)网络互连的“网络之网络”。
    它的组成:
    1、它是数以百万计的互连的计算设备集合:主机(hosts)=端系统
    2、通信链路:光纤、无线电、铜缆、卫星…
    3、分组交换:转发分组(数据包),包括路由器(routers)和交换机(switches)
    它提供的服务:
    1、为网络应用提供通信服务的通信基础设施:Web、VolP、email、网络游戏、社交网络…
    2、为网络应用提供应用编程接口(API):支持应用程序“连接”Internet,发送/接收数据

    1.2 网络协议

    除了硬件(主机、链路、路由器…)连接,Internet顺畅运行还需要一个重要组成,那就是协议。
    硬件(主机、通信链路、路由器等)是计算机网络的基础。
    计算机网络中的数据交换必须遵守事先约定好的规则。–协议
    定义:网络协议(network protocol)简称协议,是为进行网络中的数据交换而建立的规则、标准或约定。
    作用:协议规范了网络中所有信息发送和接收过程。
    协议的三要素:
    1、语法
    数据与控制信息的结构或格式
    2、语义
    需要发出何种控制信息,完成何种动作以及做出何种响应
    3、时序
    事件顺序,速度匹配
    Internet协议标准:RFC:Request for Comments

    二、网络编程

    概念:
    1.按规模分类:局域网、城域网、广域网;
    2.互联网(超过2台以上的设备通信,internet)、因特网(千万台设备通信,Internet,基于TCP/IP协议实现的)、万维网(基于HTTP协议的,www服务)

    2.1 OSI开放系统互连参考模型

    1)应用层:网络服务和最终用户有一个接口,协议有HTTP\FTP\DNS\HTTPS\POP3
    2)表示层:对数据的语法表示、安全、压缩等
    3)会话层:管理主机之间的会话进程。即负责建立、管理、终止进程的会话
    说明: 会话,在计算机术语中,是指一个终端用户与交互系统进行通讯的过程。比如从输入账号密码进入操作系统到退出操作系统就算一个会话过程。
    4)传输层:用一个寻址机制来标识一个特定的应用程序(端口号),向高层提供可靠的端到端的网络数据流服务,理解为每一个应用程序都会在网卡注册一个端口号,该层就算应用于端口与端口的通信(数据单位为数据段segment)
    TCP和UDP
    TCP:面向连接的可靠的基于字节流服务的传输协议—>比喻成打电话
    面向连接:传输数据之前要先建立连接,用“三次握手”的方式
    UDP:非面向连接的不可靠的基于用户数据报服务的传输协议–>比喻成发短信
    5)网络层:分隔和重新组合数据包(packet)基于网络层地址(IP地址)进行不同网络系统间的路径选择路由器。可以理解为此处需要确定计算机的位置,通过IPv4、IPv6(数据单位为数据包packet)
    逻辑地址寻址,ip地址
    IPV4:192.168.19.83 [0,255].[0,255].[0,255].[0,255] 32位
    IPV6:128位,是IPV4的4倍,格式为 x : x : x : x : x : x : x :x,每个x16进制表示
    6)数据链路层:通过使用物理地址来寻址网桥、交换机、网卡,逻辑地址和物理地址连接,简单的理解为规定了0和1的分包形式,确定了网络数据包的形式或为数据赋予了格式(此层将bit流封装成Frame帧)
    7)物理层:用于物理连接,硬件,将信息编码成电流脉冲或其他信号用于网上传输(此层传输的是bit流)

    2.2 实际中用4层的TCP/IP协议参考模型

    (1)应用层:(重要代表HTTP,HTTPS);
    (2)传输层(TCP/UDP);
    (3)网络层:(重要代表IP协议);
    (4)主机-网络层:硬件层

    2.3 网络通信的三个要素

    1.网络协议
    对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
    比喻:通信的两端保证能“听”得懂对方的话。
    2.IP地址
    负责能够把数据准确的送到对应的目的地。
    3.端口号
    同一台主机有很多应用都要与网络通信,怎么区别?
    端口号就是区别每一个应用程序。同一个协议必须端口号不能重复。
    例如:mysql:3306;oracle:1521;sql server:1433; http:80;

    2.4 IP地址、MAC地址和端口号的区别

    IP 是地址,有定位功能(网与网的通讯) (在逻辑上唯一标识一台电脑)(网络层)
    MAC 是身份证,无定位功能(在子网干活)(在物理上唯一标识一台电脑) (链路层)
    MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
    IP地址:(基于计算机或路由器)在网络层的IP头部里,用于识别网络中互联的主机和路由器(网关设备),其实主要是确认子网,通过子网掩码确认某个IP地址所在的子网,而后再在子网内部确认mac地址就能找到准确的用户了。IP地址由网络地址和主机地址两部分组成。
    ==说明:==在Internet中采用的是由子网掩码来确定网络地址和主机地址。子网掩码与IP地址一样都是32位的,并且这两者是一一对应的,子网掩码中“1”对应IP地址中的网络地址,“0”对应的是主机地址,网络地址和主机地址就构成了一个完整的IP地址。

    MAC地址:(基于网卡或路由器)在数据链路层包裹在以太网头部中的,它主要用来识别同一个链路中的不同计算机。Mac地址即网卡号,每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示。

    端口号:在传输层包含在TCP/UDP头部中的,用于识别应用程序。一台主机上能运行多个程序,那么接收到的消息到底是哪个程序的呢?就需要端口号来确认。端口是应用层的概念,每个应用程序(进行网络通信)都占用自己的端口。
    端口号由传输层协议决定,因此不同传输协议可以使用相同的端口号,所以TCP和UDP可以使用同一个端口号。但是,同一个协议必须端口号不能重复。

    • 点赞
    • 收藏
    • 分享
    • 文章举报
    Charles_ZengYC 发布了11 篇原创文章 · 获赞 1 · 访问量 392 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: