tcpip协议与网络编程任泰明电子书西安电子科技大学(tcpip协议与
tcpip协议详解 tcpip协议具体包括哪些内容
1、应用层:
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
2、传输层:
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
3、网络层:
负责相邻计算机之间的通信。其功能包括三方面。
(1)处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
(2)处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
(3)处理路径、流控、拥塞等问题。
4、网络接口层:
这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
TCPIP协议及配置
TCP/IP协议
最广泛支持的通信协议集合,包括大量Internet应用中的标准协议支持跨网络架构、跨操作系统平台的通信
逐级之间通信的三个要素
IP地址 子网掩码? IP路由
IP地址(IP address)? ? 标识一台计算机
地址组成(点分十进制)
-32个二进制是表示为4个十进制数,以 . 隔开
IP地址分类? ? ?(127.0.0.1:永远代表本机地址)
-A类:1~127? ? ? ? ? ?网+主+主+主
-B类:128~191? ? ? ?网+网+主+主
-C类:192~223? ? ? ?网+网+网+主
-D类:224~239? ? 组播
-E类:240~254? ?科研
配置IP地址? ? 略
IP地址组成:网络位+主机位
-A类:1~127? ? ? ? ? ?网+主+主+主? ? ?1.1.1.1
-B类:128~191? ? ? ?网+网+主+主
-C类:192~223? ? ? ?网+网+网+主
网络位:相当于区号作用,标识一个区域(网络)
主机位:相当于区域中的编号
192.168.1.1 -------------开头为192可以判断为C类地址
C类:192~223? ? ? ?网+网+网+主 ---------------- 192.168.1.1 网络中编号为1的计算机
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?网+网+网+主 ---------------- 192.168.2.1?网络中编号为1的计算机
子网掩码:为计算机区分IP地址的网路位和主机位,利用二进制的1代表网络位利用二进制的0代表主机位
192.168.1.1
11000000.10101000.00000001.00000001
11111111.11111111.11111111.00000000------------------255.255.255.0
IP地址表示
192.169.1.1? ?255.255.255.0
192.168.1.1 /24? 有24个网络位
拓展:
DNS服务器:将用户在浏览器输入的域名,解析为对应的IP地址
网关设备:一般为路由器
网关地址:一个网络到另一个网络的关口(作用解决不同网络通信)
java开发要不要学tcpip
需要学tcpip。
编程语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读.
TCP协议目前是事实上的网络基础。许多更高层的应用协议HTTP,FTP都基于TCP。
TCP协议的学习可以说枯燥无比,尤其是学生阶段,根本不知道用在什么地方,根本不知道重要性是什么。事实上是,基于目前的网络发展和分布式发展,TCP简直就是基础中的基础。许多网络的问题,配置,入侵,防御乃至架构,都涉及到TCP的具体应用及机制。
以下是我总结的TCP学习过程
1. 了解学习TCP协议的重要性和必要性,了解TCP协议为什么被发展出来
推荐这个问题下的各个回答:TCP/IP 协议到底在讲什么?
2. 学习TCP协议的三次握手以及四次挥手,重点了解为什么要三次握手,为什么要四次挥手,在整个过程中状态是如何变迁的。(经典的状态图以及握手挥手图)
a.为什么要三次握手?不是一次,两次或者四次。我们来论证一下,如果只有一次会发生什么情况,a向b发起连接请求,假设b没收到,则b其实完全不知道a发起了请求,而a也完全不知道b收没收到,所以一次握手是不可靠的;如果两次握手呢,a向b发起连接请求,b收到a的请求给a回复一个请求,假设此时a收到了b的回复,a知道了b已经ready了,可b完全不知道a是否ready,有可能a并没有收到b的请求,也有可能收到了,但这些b都完全不知道,所以只是单向的建立了连接;如果是四次握手呢,其实第2次让a知道b ready了,第三次让b知道a也ready了,第四次完全就是多余了,会浪费网络资源。
b.为什么要四次挥手?不是3次?实际上两边连接完全可以分开看,用2次挥手断开其中一边连接,用另外2次挥手断开另一边的连接,最终完成整个连接关闭。之所以这样设计,是因为有可能某一边数据还未传输完,连接还未关闭。因为TCP被设计为全双工协议,可以任何一边单向发送数据。
1. 握手及挥手过程
2. TCP的状态转换图
3. 学习TCP协议是如何保持可靠性设计的。
主要目的是用来参考,以便在其他通信场合时用作架构和设计的参考
1).包应答序列号及包重组。
面临的问题:网络传输中,会出现数据的破坏,丢包,重复,分片混乱等问题。
本质上,要想保证传输的可靠性,则需要对传输的内容进行验证。
a. 对于网络数据的破坏(比如宇宙射线影响偷笑导致发射火箭的数据中某一位从0变为1),采取的策略是丢弃重新发送,以确保不会出现致命的错误。TCP在自身协议中单独划了一块checksum用于这种校验,校验算法本质上是将整块数据通过某个函数映射到16位的校验位上(比如用字符相加的和来校验)
b. 对于数据传输正确,但是分片乱序,重复等问题,或是丢包,采取的策略并非丢弃而是自行进行包重组。
考虑两种情况:第一种情况是某个包缺少了,导致整个数据中间缺了一段1000字节,那么如何通知到对方自己少了哪一段数据;另一种情况是由于网络或者重发机制的原因导致某一个包收到多次,如何把多余的包都排除掉,仅保留已有数据。
TCP在设计时候充分考虑这点,其中SYN和ACK就是用来确保这个过程的,SYN发送的是字节顺序,ACK则应答收到的字节序加1。这样,无论是发送方还是接收方,都可以准确的维护一张发送接收字节的列表。从而可以知道对方还需要哪些字节,或自己已经接收了哪些字节。
tcpip协议栈要学多久
TCP/IP协议栈的学习时间取决于个人的学习能力,以及学习难度。如果是从零开始学习,一般大约需要2~3个月的时间,深入学习可能需要更长的时间。
网络编程和tcpip都要看吗
是。网络编程和tcpip是都要看的,网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用,tcpip是供已连接因特网的计算机进行通信的通信协议。
TCPIP协议经典教程
推荐两本,第一本是《用TCP/IP进行网际互联第一卷:原理协议与结构(第四版)》(共三卷)。
本书是一部关于计算机网络的经典教科书,它是目前美国大多数大学里所开设的计算机网络课程的主要参考书。目前国内外能见到的各种有关TCP/IP的书籍,其主要内容均出自本书。本书的特点是:强调原理、概念准确,深入浅出,内容丰富新颖;全书共分为三卷,第一卷从TCP/IP基本概念讲起,讨论了主要协议和结构,讲解了TCP/IP的各种具体应用,并阐述了其未来发展趋势。全书共33章,各章之后有许多问题。本书可供计算机和通信专业的研究生,高年级本科生作为教科书或学习参考书,也可供从事科研和技术开发的人员参考。
第二本是《TCP/IP协议详解》,也是三卷。这本书也非常的经典,它详细介绍一下TCP/IP的内部结构,并提供了作者本人的一个根据协议做出的软件实现的源代码。
中文版是由机械电子工业出版社出版的,翻译、装帧都很不错。不过建议有能力的还是读英文原版,影印版的也不贵。