TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端口到端口的通讯。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓“窗口”实际表示接收能力,用以限制发送方的发送速度。
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
源IP地址 发送包的IP地址。目的IP地址 接收包的IP地址。源端口 源系统上的连接的端口。目的端口 目的系统上的连接的端口。
Linux主机要与网络中其它主机进行通讯,首先要进行正确的网络配置。
网络配置通常包括主机名、IP地址、子网掩码、默认网关、DNS服务器等。
在Linux中,TCP/IP网络的配置信息是分别存储在不同的配置文件中的。相关的配置文件有网卡配置文件、/etc/sysconfig/network、/etc/hosts、/etc/resolv.conf以及/etc/host.conf等文件。
用于显示或者临时设置当前主机名称
ifconfig命令加上-a参数可以显示所有的网络接口,包括启动的和未启动的。
利用“ifconfig指定的网络接口”命令,查看某一个网络接口的状况。
ifconfig命令还可以用来启动和停止网络接口。如果要启动某个网络接口用up,关闭某个网络接口用down。
ifup命令用于激活不活动的网络接口设备
ifdown用于停止指定的网络接口设备
/etc/service是一个脚本文件,利用service命令可以检查指定网络服务的状态,启动、停止或者重新启动指定的网络服务。
service命令的语法格式如下:
Service 服务名 start/stop/status/restart/reload查看本机路由表,添加、删除路由条目,设置默认网关。
[root@Aurora~]#routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.1.0 * 255.255.255.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
#添加到达目标网络192.168.2.0/24的网络路由,经由eth1网络接口,并由路由器192.168.2.254转发[root@Aurora~]#route add-net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.254 dev eth1#添加到达192.168.2.10的主机路由,经由eth1网络接口,并由路由器192.168.2.254转发[root@Aurora~]#route add-host 192.168.2.10 netmask 255.255.255.255 gw 192.168.2.254 dev eth1#删除到达目标网络192.168.2.0/24的路由条目[root@Aurora~]#route del-net 192.168.2.0 netmask 255.255.255.0#删除到达主机192.168.2.10的路由条目[root@Aurora-]#route del-host 192.168.2.10 netmask 255.255.255.255
[root@Aurora~]#route add default gw 192.168.1.1 dev eth0[root@Aurora~]#route del default gw 192.168.1.1该命令可以设置网络接口ip地址的获得方式(是静态配置还是动态获得)、ip地址、子网掩码、网关、DNS服务器ip地址等。
使用netconfig命令配置的各项参数会直接写入相应的网络配置文件,为了使设置生效应重新启动network网络服务。
ping:用于测试本机和目标主机的连通性traceroute:用于实现路由跟踪netstat:查看网络当前的连接状态arp:配置并查看linux系统的arp缓存