1. File Server buffered I/O가 일어남
예) 1.4 MB file을 다운 받을 시
File Server:
- socket에 대해 read와 write를 함
file server write 할 때 read:
- user-space app은 system api 호출
- system api는 storage driver api 호출
- hw read 해서 write 할 내용을 가져옴
server buffer:
- socket write 할 때 쓸 내용을 read 해서 일정 크기 만큼 memory 적재함
- 예) 64KB
file server socket write:
- server buffer에서 kernel에 있는 TCP/IP buffer 로 copy
- IP 단위로 NIC로 보낼 때는 TCP/IP buffer 내용을 작게 잘라서 segment 단위로 send
TCP segment:
- 구조: TCP header + data (TCP/IP buffer 내용 일부분)
- 만드는 담당: kernel TCP 계층
- layer: transport layer. segment는 내용물.
- TCP header: src port, dst port, sequence number, checksum
- MSS (maximum segment size): 최대 payload 크기 (data가 나뉘는 단위)
- MSS 주로 MTU - IP header - TCP header 값으로 결정됨
IP packet:
- 구조: IP header + TCP segment
- 만드는 담당: kernel IP 계층
- layer: network layer. packet은 택배.
- IP header: src IP, dst IP, checksum (IP header의 오류를 검출)
- MTU (maximum transmission unit): 단편화 되기 전 IP packet의 최대 크기
- 단편화: MTU 보다 TCP segment가 커서 IP packet을 나눠서 이후 하나의 패킷으로 재조립해야 하는 경우 단편화 발생
Ethernet frame:
- 구조: Ethernet header + IP packet
- 만드는 담당: NIC device driver
- layer: data-link layer. frame은 트럭.
-- frame은 end to end로 가면서 몇번을 갈아타게 된다.
- Ethernet header: dst MAC, src MAC
-- dst MAC는 ARP를 활용하여 결정
-- ARP (address resolution protocol): IP에 대해서 MAC를 반환. broadcast 활용. dst IP가 직접 응답.
-- ARP packet: frame의 한 종류. type이 arp 임.