TCP/IP学习笔记(二)

IP协议 IP相当于OSI参考模型中的网络层。主要作用是实现终端节点之间的通信。数据链路层的主要作用是在同一种互联的数据链路中进行包传递。如果需要跨越多种数据链路,就需要网络层的协助。 IP协议的三大模块1.IP寻址 2.路由 3.IP分包和组包 IP地址用于连接到网络中所有主机中识别出进行通信的目标地址。所以在TCP/IP中所有的主机或路由器都必须设定自己的IP,而网桥或交换集线器不需要自己的IP,因为他们只负责简单的将比特流转发。 路由控制是指将分组数据发送到最终目标地址的功能,即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。 路由控制表(路由择域信息库)为了将数据包发送到目标主机,所有主机都维护着一张路由控制表,该表记录了IP数据下一步应该发给那个路由器。路由控制表存储在路由器或联网计算机上。 IP链路的抽象化IP实现了多个数据链路之间的的通信协议。不同的数据链路有各自的特点。需要对不同的数据链路进行抽象化。不同的数据链路的最大传输单位往往不同。为了解决这个问题IP协议对链路进行了抽象化,屏蔽了链路的差异。 IP是面向无连接型在发送IP数据包之前,不需要建立对端目标之间的连接。其优点在于简化了协议,提高了速度。 IP地址1.IP地址由32位整数来表示。2.IP地址由网络标识(地址)和主机标识(主机地址)两部分组成。3.网络标识在数据链路中的每个端配置不同的值。网络标识必须保证互相连接的每个端的地址不相重复。4.同一个网段中的地址也必须保证主机标识不相重复。

TCP/IP协议学习笔记(一)

TCP/IP协议的分层模型1.应用层 2.传输层 3.互联网层 4.网卡层 5.硬件层(物理层) TCP首部包含的信息 1.源端口号和目标端口号(用于识别发送主机和接收主机的应用,每个应用占用特定的端口)2.数据包的序号3.校验和(用于判断数据是否被损坏) IP首部包含的信息1.接收端IP地址和发送端IP地址2.上一层协议类型标志3.接收端的MAC(物理地址)地址 MAC地址1.MAC地址用于识别数据链路中互联的节点。2.MAC地址长48bit,在使用网卡(NIC)的情况下,MAC地址一般烧录在ROM中。理论上讲MAC地址是不会重复的,但是实际上MAC地址有重复的可能,比如虚拟机上

wav音频的剪切

wav格式音频剪切功能的完美实现方案。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556...

git与git的简单使用

git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理工作。 如何理解git是一个分布式版本控制系统 分布式 区别于集中式的版本控制系统典型的如SVN。分布式是指没有中央服务器,每个人的本地都有一份完整的项目文件。而集中式版本控制系统,有中央服务器,每个人从中央服务器获取一份项目文件,在本地开发,开发完成后提交给中央服务器。分布式版本控制系统的优点在于网络依赖小,只有在需要合并分支时才需要网络;本地文件存储采用元数据,体积小;分支操作互不影响。 版本控制系统 版本控制是指在软件开发过程中各种代码、配置文件和说明文档等文件变更的管理。 Git工作区、暂存区和版本库Git工作区通俗的讲就是除了隐藏文件夹.git以外的所有文件和文件夹。我们平时直接操作的文件就是存放在Git工作区的文件。 Git暂存区是指隐藏文件夹.git中的index文件。我们也可以把暂存区叫做索引 Git的版本库就是.git文件夹。 *理解Git的工作区、暂存区和版本库是理解git命令的关键* Git的基本操作 创建仓库 创建仓库,通俗的讲就是生成一个隐藏文件夹.git。我们可以使用如下名命令: git init 从Git仓库中拷贝项目(类似svn中的捡出项目,这里的Git仓库一般是指GitHub上的仓库) git clone <Git仓库的地址> <本地目录,可以省略> 例如: git clone https://github.com/0Eternity0/0Eternity0.github.io.git f:/MyDir// 该句的意思是从该地址克隆一份项目文件到MyDir文件夹。如何不指定本地目录,就克隆到命令行工具运行的当前目录

java创建线程的三种方式

Java创建线程的三种方式 继承Thread类,并重写run方法 通过Runnable接口创建线程类 通过Callable和Future创建线程 1. 继承Thread类来实现继承Thread并重写run方法,创建该子类的示例,即创建了一个线程对象,调用线程对象的start()方法来启动该线程 1234567891011public class ThreadDemo extends Thread{ //重写run方法 public void run(){ System.out.println("线程执行"); } public static void main(String[] args){ //创建该子类的实例,并启动该线程 new ThreadDemo().start(); }}

1131415