目录
1.理解绑定
2.理解封装和解包
封装(添加报头)
1.理解绑定
当数据报文到达的时候,会一层一层的解包分用给目的端口号的进程。
在程序启动的时候都需要绑定端口号,数据报文才能通过端口号交给对应的进程,那这是怎么做到呢?
在操作系统中会有一张哈希表,这张哈希表的key是端口号,value是进程的pcb。
当使用bind接口,就是在这张哈希表中,添加一个port和pcb的映射。
有了这张表,就可以通过端口号直接拿到进程的pcb。
2.理解封装和解包
在操作系统中一定会存在,大量的报文,这些报文可能是刚收到,也可能是已经交给了上层,对于这些报文,操作系统一定要对报文进行管理。
这些报文无论是http还是ftp的都无所谓,他们有个共同的特点,数据报文 = 报头 + 数据。利用这一点就能将报文很好的管理起来。
封装(添加报头)
1.head会指向一段内存区域的中间,这段区域前后都是可扩展的。
2.将head指针前移
3.利用head指针就可以填充要添加的报头的每个字段
解包
原理和分装相同