计算机网络纲要
题记:貌似生命又要进入一个转折点了,所以须努力呀须努力,今天主要写计算机相关的一些读书笔记,写的很泛,希望大家不甚厌烦。
计算机网络模型:
概要:
国际标准组织中把网络体系分为了七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。但是在各生产厂家中,实际上一般分为四层,也就是我们常说的TCP/IP模型了:网络接口层,网际层,传输层,应用层。网络接口层就相当偏硬了,接触的会相对来说少一些。
这里先讲两个概念,端到端,点到点分别指的是什么?
端到端一般指的是计算机应用程序到应用程序,可以简单的理解从端口到端口;而点到点就是电脑到电脑了。电脑是硬件,程序是软件。所以在各个层次中,传输层是第一个端到端的,也就是进程到进程。
好了,这里又提到了进程,那么就有必要提线程。其实这两个概念是操作系统中的。
进程是系统分配资源的基本单位,线程是Cpu执行的基本单位,线程拥有一些资源,但是非常非常的少,比如计数器之类的;一个进程可以创建多个线程,各个线程相互协同工作可以更好的提高用户体验,同时提高程序运行速度。具体可以参考相关文章。
传输层是我们进行打交道的层次了。最经典的socket就是此层了。
传输层及TCP UDP
UDP是用户数据报协议,用户和服务器之间无连接,客户可以利用一个数据报发给一个服务器后,立马向另外的服务器发送数据。它不保证数据一定能够传输到,也不保证数据报能够按照一定的先后顺序传输。
TCP是传输控制协议,提供了可靠的传输,因为它是面向连接的。连接的时候会有三次握手,断开连接的时候会有四次挥手,这种确认机制保证了其可靠性,但是同时也注定了它的传输速度要低于UDP。TCP会有以下几种机制:确认服务器或另一端收到才继续发,数据报会排序,流量控制(保证另一端能够接受的过来)。
TCP连接的建立:三次握手
假设A是客户端,B是服务器。
首先A向B发送一个连接请求,B收到请求后确认,并给A发送一个确认信号,A再一次对B确认。这样三次握手就建立了。
那么对于A来说,要发送数据需要做哪些工作呢?
首先建立一个socket也就套接字,里面包括端口号,IP等基本信息,然后connect到B服务器,在send信息或者read信息,最后close.
反之,对于B也要做一系列的工作,才能保证运行的顺利执行。
首先B建立一个socket套接字,然后bind(),然后再不断的监听是否有客户连接进来listen,监听完毕之后就要accept了。只有当accept之后才能进行send,read操作。最后就是close操作。
既然TCP要保证可靠的传输,那么怎么确定数据发送完毕,并且双方都关闭呢?
这里就要讲四次挥手了。
一般来说客户端A主动向B发送一个关闭请求,B收到后进行确认,确认完毕后对A回复一个确认信号,(注意此时的A要进入一段等待时间 要保证之前的信息B都能收到呀),过了一段时间之后,B向A报告收到的最后一个数据报的序列号N,A收到后,比照之前发送的数据报,如果的确是N。那么A再向B发送确认信号。这样,关闭就完成了。
网络层:
传统IP地址分为A,B,C,D,E五类。
A类:最开始是0,网络地址7位,主机地址24位
B类:最开始是10,网络地址14位,主机地址16位
C类:最开始是110,网络地址21位,主机地址8位
D类:最开始是1110,多目的广播地址28位
E类:最开始是11110,保留
网络地址转换协议NAT。
主要把内网的IP转换成全球公网的一个IP。
ARP协议:IP转到MAC地址
RARP协议:MAC转换到IP。
其他协议比如ping,tracert,telnet,netstat等等。
版权所有,欢迎转载,但是转载请注明出处:潇一
参考文献:王道求职宝典