본문 바로가기

카테고리 없음

WEB 면접 예상 질문) "File Server에서 File을 다운 받는 과정에서 TCP/IP에 대해서 설명해주세요 (Server-side)"

 

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 임.