TCP/IP 深刻理解

来源:互联网 发布:韶关网络问政门户网站 编辑:程序博客网 时间:2024/04/25 15:17

IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。


TCP/IP协议中,A给B发送IP包,在报头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,(以太网就是各个局域网),还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址.

  计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议

  在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。


1.分组是在传输层中进行的!!不是网络层!!因为传输层要传输,所以必须在传输层分组 !!!

分组是在传输层上做的,将上层的协议产生的数据文件进行数据传输上的分配。

IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。这一过程称为分片( fragmentation)。 IP 分片(Fragmentation)发生在要传输的IP报文大小超过最大传输单位MTU(Maximum Transmission Unit)的情况。比如说,在以太网(Ethernet)环境中可传输最大IP报文大小(MTU)为1500字节。如果要传输的报文大小超过1500字节,则需要分片之后进行传输。由此可以看出,IP分片在网络环境中是经常发生的事件。

2.arp地址解析协议是在网络层上的,因为网络层负责填写地址,选择路径。所以必须是在ip层有arp地址解析协议!

3.传输层中TCP是面向连接的(虚电路),udp是无连接的(数据报),所以网络层中如果是虚电路方式,必须用tcp协议,如果是数据报方式,必须是udp连接。

即:如果ip层接收的是TCP层数据包,则ip层采用虚电路方式。如果ip层接收的是是UDP数据包,则采用数据报方式 。

4.

TCP

  TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。
  TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
  如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。


3.UDP

  UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
  UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求在程序员编程验证。
  UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
  欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.应用层理解

应用层

  向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
  应用层一般是面向用户的服务。如FTP、TELNET、DNS、SMTP、POP3。
  FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
  Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
  DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换。
  SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转。 
  POP3(Post Office Protocol 3)是邮局协议第3版本,用于接收邮件。