IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络通信学习记录一 -> 正文阅读

[网络协议]网络通信学习记录一

一、TCP/IP协议

TCP/IP协议是计算机间进行通信所遵守的各种规则的集合。Internet的主要协议有:网络层的IP协议、传输层的TCP和UDP协议、应用层的FTP、HTTP、SMTP等协议。其中TCP和IP是Internet的主要协议,它们定义了计算机与外设进行通信所使用的规则。TCP、IP网络参考模型包括四个层次:应用层、传输层、网络层和链路层。每一层负责不同的功能。

二、网络通信解决的问题

不同机器,不同程序之间的数据交换

三、地址

因特网上的每台计算机和其它设备都拥有一个唯一的地址,保证用户在连网的计算机上操作时,能够高效且方便地从千千万万台计算机中选出自己所需的对象来。本机ip地址为127.0.0.1/0.0.0.0/路由器分配的ip地址

3.1 IPV4

是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

3.2 IPV6

随着互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP地址的发放愈趋严格,各项资料显示全球IPv4地址可能在2005至2010年间全部发完(实际情况是在2019年11月25日IPv4位地址分配完毕)。地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过IPv6重新定义地址空间。IPv6采用128位地址长度。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它问题。 ?
现有的互联网是在IPv4协议的基础上运行的。IPv6是下一版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,而地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过IPv6以重新定义地址空间。IPv4采用32位地址长度,只有大约43亿个地址,估计在2005~2010年间将被分配完毕,而IPv6采用128位地址长度,几乎可以不受限制地提供地址。按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。在IPv6的设计过程中除解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它一些问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。

四、子网

单个节点的能力有限,不可能所有的节点都接入一个网络,一个节点记住所有的节点信息,所以只能组成一个个子网,层层嵌套,组成广域网,城域网和局域网,

五、DNS

全称是Domain Name Server,互联网上的服务器是通过ip地址进行识别的,而ip地址是由一组枯燥且没有任何意义的数字组成,不便于人们记忆,后来便出现了便于记忆的域名,通过域名和ip地址的对应关系实现了寻址,DNS的作用就在于将便于人们记忆的域名解析成INTERNET可以识别的ip地址。本地C:\Windows\System32\drivers\etc目录下的host文件也可以配置这个域名

六、根服务器

主要用来管理互联网的主目录,最早是IPV4,全球只有13台(这13台IPv4根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国,由美国互联网机构Network Solutions运作。其余12个均为辅根服务器,其中9个在美国,2个在欧洲(位于英国和瑞典),1个位于日本。 ?在与现有IPv4根服务器体系架构充分兼容基础上,“雪人计划”于2016年在全球16个国家完成25台IPv6根服务器架设

七、Windows10开启telnet

打开控制面板——>点击程序——>点击程序和功能下的”启用或关闭Windows功能“——>勾选上Telnet客户端——>点击确定即可

?八、通信实战

依据:通过ip地址可以确定所在网络及所在网络的终端,端口号可以确定该终端的进程。即ip加端口号可以定位一个程序
思路:先在eclipse上写好服务端代码,运行服务端程序,然后以cmd为客服端,借助Telnet请求连接服务端并与服务端进行通信

import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.ServerSocket; 
import java.net.Socket;


public class Server implements Runnable
{
	static ServerSocket ssc;
	static OutputStream output;
	public static void main(String[] args) throws IOException 
	{
		/** 
		 * Socket 包装TCP连接 
		 * 指定端口地址:10001
		 * 建立监听服务
         */		
		ssc = new ServerSocket(10001); 
		System.out.println ("服务端开启:ip:"+ssc.getInetAddress ().getHostAddress ()+"端口号:"+ssc.getLocalSocketAddress ()); 
		/** 
		 * 监听器客户端 Socket的连接(可以认为服务端进程阻塞在此,直到有客户端连接上来继续执行)
		 * clientSocket:负责当前线程中c/s通信中的Socket对象
		 */
		Socket socketClient = ssc.accept();
		System.out.println ("客户端端口:"+socketClient.getPort()); 
		// 获取一个输出流 对象
		output = socketClient.getOutputStream (); 
		output.write ("Hello Client!!!!".getBytes ()); 
		//启动线程,向客户端发送信息
		Server s=new Server();
		Thread rt=new Thread(s);
	    rt.start();
	    // 获取一个输入流对象,从客户端读入信息
		InputStream input = socketClient.getInputStream (); 
		while(true)
		{ 
			int readnum = input.read (); 
			System.out.print((char)readnum); 		
		}
	}
	
	@Override
	public void run() {
		while(true)
		{
			int ch;
			try {
				while((ch=System.in.read())!=-1)
				{//从键盘接收字符并向客户端发生
					output.write(((byte)ch));
					output.flush();//将缓冲区内容向客户端输出
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}	
	}
}

代码写好后点击运行,然后打开cmd,输入:telnet 127.0.0.1 10001?就可以实现通信了:

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:19:50  更:2021-09-19 08:20:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 2:08:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码