在网络中,通过IP地址,协议和端口号可以唯一地确定网络上的一个应用程序,其中把IP地址和端口的组合叫做端点
TCP/IP通常被认为是一个四层协议系统,如图1所示。
(1)应用层:“”并不是指运行在网络上的某个特别应用程序,而是提供了一组方便程序开发者在自己的应用程序中使用网络功能的服务;应用层提供的服务包括文件传输(FTP)、文件管理以及电子邮件的信息处理(SMTP)、http协议等
(2)传输层:传输层的功能就是建立端口到端口的通信,通过MAC和IP地址,我们可以找到互联网上任意两台主机来建立通信。然而这里有一个问题,找到主机后,主机上有很多程序都需要用到网络,比如说你在一边听歌和好用QQ聊天, 当网络上发送来一个数据包时, 是怎么知道它是表示聊天的内容还是歌曲的内容的, 这时候就需要一个参数来表示这个数据包是发送给那个程序(进程)来使用的,这个参数我们就叫做端口号,主机上用端口号来标识不同的程序(进程),端口是0到65535之间的一个整数,0到1023的端口被系统占用,用户只能选择大于1023的端口。在传输层有两个非常重要的协议:UDP 协议和TCP协议
(3)网络层:网络层就是建立主机与主机的通信 , 该层通过寻址(寻址地址)来建立两个节点之间的连接,大家都知道我们的电脑连接上网络后都一个IP地址,我们可以通过IP地址来确定不同的计算机是否在同一个子网路,Ip地址分成两部分,前24位代表网络地址,后8位代表主机号, 如192.168.254.1和192.168.254.2就处于同一个子网络里,因为这两个IP地址的前24位相同。
(4)链路层:数据链链路层就是来传输以"帧"为单位的数据包,把数据传递给上一层(网络层),帧数据由两部分组成:帧头和帧数据,帧头包括接受方物理地址(就是网卡的地址)和其他的网络信息,帧数据就是要传输的数据体。数据帧的最长为1500字节,如果数据很长,就必须分割成多个帧进行发送。
网络上的计算机要通信,必须要知道通信的计算机“在哪里”, 首先通过网络地址IP来判断是否处于同一个子网络,然后再对物理地址(MAC)地址进行处理,从而准确确定要通信计算机的位置。然后通过端口号标示不同的程序。
参考:http://www.cnblogs.com/zhili/archive/2012/08/11/NetWorkProgramming.html