网络编程

liuxiaolu liuxiaolu     2023-02-06     720

关键词:

一:什么是网络编程?

  网络通常指的是计算机中的互联网是由堕胎计算机通过网线或其他媒介相互链接完成的。编写基于网络的应用程序的过程称之为网络编程。如果要想与其他计算机建立连接,就必须要让你的计算机与其他计算机能够互相传递数据。

二:C/S架构(客户端Client与服务器Sever)

  提供数据的一方称之为服务器,访问数据的一方称之为客户端。技术分享图片

另外浏览器也可以访问服务器上的网页数据,称之为B/S,其本质上也是C/S只不过客户端是浏览器

 三:网络通信的基本要素

  1.两台计算机要想通信,必须要具备两个基本要素:

    1.1.物理连接介质,包括网线,无线电,光纤等

    1.2.通讯协议

  2.什么是协议?

    协议就是标准,大家要遵循相同的标准才能正常交流通讯。双方都能理解的语言就是标准,就是协议。互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

  3.OSI七层模型(Open System Internetconnection Reference Model)

    开放式系统互联网通信参考模型,缩写为OSI,是由国际标准组织推出的,其实就是一大堆协议,OSI吧整个通讯过程划分为七层,简称为OSI七层模型。

技术分享图片

  OSI相当于计算机界的通用语言,只要按照OSI规定的标准来通讯,就能够与全世界任何一台计算机通信。

    3.1物理层

    物理层的功能:基于电子器件发送交流信号,根据电流的高低可以对应到数字0和1,也就是二进制数据。

    3.2数据链路层

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

    数据链路层的功能:定义了电信号的分组方式

    以太网协议:

    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet

    ethernet规定:

      • 一组电信号构成一个数据包,叫做‘帧’
      • 每一数据帧分成:报头head和数据data两部分

技术分享图片

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

发送者/源地址,6字节

接收者/目标地址,6字节

数据类型(标签+以太类型),6个字节

data包含:(最短46字节,最长1500字节)

  • 数据包的具体内容

head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

  mac地址:

    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)技术分享图片

  广播:

  有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)

  ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

技术分享图片


交换机不仅负责让网络中的计算机能够互相通信,还要优化网络传输,

如何优化呢?

当pc1想要与pc2通讯前

1需要知道pc2的MAC地址所以必须先将这个信息广播给所有的计算机,

2.这个信息必须先交给交换机,再由交换机广播出去,

3.pc2收到消息后发现目标MAC是自己,就回复数据给发送方,

4.而回复也必须先交给交换机,此时交换机就会记录pc2的MAC地址与网口1号的对应关系存到自己的缓存中,

5.下一次在要给pc2发数据时从缓存中查找pc2的MAC地址,

6.如果找到了就直接单独给pc2发送,不在需要广播,

7.如果没有则重复之前的广播过程

这一优化功能称之为自动学习功能

第一次链接某计算机时必须广播获取MAC地址:
技术分享图片

 

只要链接过一次MAC地址就被交换机记录下了下一次就不用广播了

技术分享图片

交换机的工作原理类似于早期的电话交换机,电话线打到总台,总台问你要几号?然后将电话线插到相应的口上。

   

 
























javaapi_网络编程基础_网络编程基础1

网络编程基础1.网络编程概述(1).计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件 及网络通信协议的管理和协调下,实现资源共享和信息传递... 查看详情

网络编程和并发编程

1.网络编程小白入门知识点大杂烩 2.并发编程小白入门知识点大杂烩 查看详情

java网络编程指南

网络编程在我们的日常开发中是最为常见的,尤其是在通信这一块显得更加的突出,比如我们最为常见的微信和QQ其基本原理就是网络编程。本文详细介绍网络编程的相关知识。首先介绍的就是网络编程的相关概念。1.网络编程... 查看详情

java网络编程入门(软件结构网络通信协议网络编程三要素)

@[toc] 查看详情

游戏网络编程

游戏网络编程(二)本篇介绍Socket编程,因为我觉得每个开始接触网络编程的人应该都是先从了解socket编程开始的吧。后面介绍的WebSocket也会和Socket编程的概念做比较,因此先介绍下Socket编程。游戏网络编程二什么是Socket常用的... 查看详情

java--网络编程

每次一提到网络就感觉瞬间变得高大上了,可是网络编程真的有那么神秘吗?接下来让我们一起来复习一下吧。  很多人把网站编程等价于网络编程,在这里给大家纠正一下,网络编程!=网站编程,那么何为网络编程呢?网... 查看详情

网络编程(代码片段)

网络编程计算机网络是指将地理位置不同的具有独立功能的多态计算机及其外部设备,通过通信线路连接起来,在网络操作系,网络管理软件及网络通信协议的管理和协调下管理和协调下.实现资源共享和信息传递的计算机系统.网络... 查看详情

网络编程详解

1.网络编程入门1.1概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传... 查看详情

网络编程模型

网络编程:socket套接字TCP编程模型  udp编程模型  查看详情

网络编程socket网络编程

java.net.InetAddress类:此类表示互联网协议(IP)地址。静态方法: staticInetAddressgetLocalHost()返回本地主机(你自己的使用的电脑)。 staticInetAddressgetByName(Stringhost)在给定主机名的情况下确定主机的IP地址。非静态方法: StringgetHostAddress()返回I... 查看详情

java网络编程:初识网络编程

 网络编程 什么是计算机网络两台或更多的计算机组成的网络同一网络内的任意两台计算机可以直接通信所有计算机必须遵循同一种网络协议什么是互联网互联网是网络的网络互联网采取TCP/IP协议其中最重要的两个协议是... 查看详情

网络编程

网络编程网络编程主要用于解决计算机与计算机(手机、平板..)之间的数据传输问题。网络编程和网页编程的区别网络编程:不需要基于html页面就可以达到数据之间的传输。比如:feiQ,QQ,微信....网页编程:就是要基于html页面的... 查看详情

java网络编程

...计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络... 查看详情

网络编程之并发网络编程(代码片段)

之前使用socket模块实现的网络编程都不能并发进行连接和通信的,即一个客户端需要等待服务器和另一个客户端通信完成后才能和服务端进行连接和通信。python3中提供有一个高级内置模块socketserver来帮助我们进行并发的网络编程... 查看详情

java之网络编程1-tcp

一,了解之前先了解一下网络基础首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程一般的网络编程都称为Socket编程,Socket的英文意思是“插座”网络编程的目的:直接或者间接的通过网络协... 查看详情

网络编程基础分享

1、网络编程网络编程网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习。在学习网络编程以前,很多初学者可能觉得... 查看详情

网络编程

网络编程:什么是套接字:源IP地址和目的IP地址以及源端口和目的端口的组合称为套接字.其用于表示客户端请求的服务器和服务.什么是网络编程:通过套接字来表达到进程之间通信目的的编程就是网络编程.进程之间的通信:1):在同... 查看详情

网络编程

网络编程目录  1.网络编程基础  2.TCP与UDP协议  3.socket与socketserver、黏包  4.线程与进程  5.线程锁  6.进程  7.协程与IO多路复用  8. 进程.线程.协程之间的区别?  查看详情