1.计算机网络的分类:局域网(LAN)、城域网(MAN)、广域网 (WAN),Internet是最大的广域网

2.网络拓扑结构:星型结构、环形结构、总线型结构、分布式结构、树型结构、网状结构、蜂窝状结构。

  • 星型结构:各个工作站一星型结构连接,其他节点连接到中心节点,端用户的通信必须经过中心,典型用例电话交换机。集中式结构便于集中控制。同时它的网络延迟时间较小,传输误差较低。中心系统一旦损坏,整个系统便趋于瘫痪。
  • 环形结构:传输媒体从一个端用户到另一个端用户,直到将所有的端用户连成环型。信息源在环路中是串行地穿过各个节点,当环中节点过多时,势必影响信息传输速率,使网络的响应时间延长;环路是封闭的,不便于扩充;可靠性低,一个节点故障,将会造成全网瘫痪;维护难,对分支节点故障定位较难。
  • 总线型结构:总线上传输信息通常多以基带形式串行传递,每个结点上的网络接口板硬件均具有收、发功能,接收器负责接收总线上的串行信息并转换成并行信息送到PC工作站;发送器是将并行信息转换成串行信息后广播发送到总线上,总线上发送信息的目的地址与某结点的接口地址相符合时,该结点的接收器便接收信息。这种结构具有费用低、数据端用户入网灵活、站点或某个端用户失效不影响其它站点或端用户通信的优点。缺点是一次仅能一个端用户发送数据,其它端用户必须等待到获得发送权;媒体访问获取机制较复杂;维护难,分支结点故障查找难。

3.通信协议规则:即计算机间通信的约定,三原则(语义:通信的类型、语法:决定双方通话的格式、规则:通信双方的应答关系)

4.OSI参考模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

5.TCP\IP:IP(Internet Protocol互联网通信协议)、TCP(Transmission Control Protocol传输控制协议),TCP\IP协议的参考模型为:物理层、数据链路层、网络层、传输层、应用层。

IP地址与端口号:IP计算分类 端口为16为整数,用于标识数据交给哪一个通信程序处理。不同的应用程序处理不同端口的数据,同一台机器上不能有两个程序使用同一端口,端口0~65535

OSI七层网络模型       TCP/IP四层概念模型           对应网络协议

------------------------------------------------------------------------------------------------------------------------------

7:应用层                                                TFTP(简单文本传输协议)、FTP、

                                                                NFS(数域筛法,数据加密)、WAIS(广域信息查询系统)

------------------------------------------------------------------------------------------------------------------------------

6:表示层                  应用层                    Telnet(internet远程登陆服务的标准协议)、

                                                                Rlogin、SNMP(网络管理协议)、Gopher

------------------------------------------------------------------------------------------------------------------------------

5:会话层                                               SMTP(简单邮件传输协议)、DNS(域名系统)

------------------------------------------------------------------------------------------------------------------------------

4:传输层                  传输层                   TCP(传输控制协议)、UDP(用户数据报协议)

------------------------------------------------------------------------------------------------------------------------------

3:网络层                  网际层                   IP(网络之间的互联协议)、ICMP(internet控制报文协议)

                                                               ARP(地域解析协议)、RARP、AKP、

                                                               UUCP(Unix to Unix copy)

------------------------------------------------------------------------------------------------------------------------------

2:数据链路层           网络接口                FDDI(光纤分布式数据接口)、Ethernet、Arpanet

                                                               PDN(公用数据网)、SLIP(串行线路网际协议)

                                                               PPP(点对点协议,通过拨号或专线方式建立点对点连接发送数据)

1:物理层                                               IEEE 802.1.A、IEEE 802.2

-------------------------------------------------------------------------------------------------------------------------------

其中高层(7、6、5、4层)定义了应用程序的功能,下面三层(3、2、1层)主要面向通过网络的端到端的数据流。

6.基于TCP\IP协议的网络编程

IP协议保证了两个计算机可以发送和接受数据。IP协议负责将消息从一个主机传送到另一个主机,消息在传送的过程别分割为一个个小包。但它无法解决在传送过程的问题。

TCP协议是一个端对端协议,它的作用是使两台计算机建立连接:形成一个用于发送和接受的虚拟数据链路,TCP负责收集数据包,并按照适当的次序放好,客户端收到后在正确还原,TCP协议的重发机制(三次握手)保证了信息的准确。

ServerSocket创建TCP服务端:他能接受其他通信实体连接请求

package ServiceTest;

import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 服务端创建Socket
 */
public class Service {

	public static void main(String[] args) throws IOException {
		//创建一个ServiceSocket,用于监听Socket的连接请求
		ServerSocket ss = new ServerSocket(5656);
		//循环不断接受客户端的请求
		while(true) {
			//在接受客户端的请求时,服务端也会产生一个Socket
			Socket s = ss.accept();
			//将socket对应的输出流包装为PrintStream
			PrintStream ps = new PrintStream(s.getOutputStream());
			//进行IO操作
			ps.println("服务端收到.....");
			ps.close();
			s.close();
		}
	}
}

使用Socket创建客户端通信请求

package ServiceTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

	public static void main(String[] args) throws UnknownHostException, IOException {
		Socket socket = new Socket("127.0.0.1", 5656);
		//将Socket对应的输入流包装成BufferedReader
		BufferedReader br = new BufferedReader(
				new InputStreamReader(socket.getInputStream()));
		//进行IO操作
		String line= br.readLine();
		System.out.println("来自服务端的数据:--->"+line);
		br.close();
		socket.close();
	}
}