MTU의 크기가 1500일 때 세 번째 패킷의 크기 구하기(ICMP)

일단 ping -l 4000 IP주소를 입력하여 명령을 실행하면 4000바이트 패킷으로 ICMP Echo Request를 전송할 수 있다. MTU 1500이므로 4000바이트를 분할한다. 일단 4000바이트에 ICMP패킷헤더(8바이트)를 붙인다. 그러면 4008바이트가 되는데 이것을 1480씩 분할한다. 1500인데 1480로 분할하는 이유는 20바이트를 IP 헤더로 사용하기 때문이다. 그렇게 분할하면 첫 번째 패킷 크기 :1480, 두 번째 패킷 크기 :1480, 세 번째 패킷 크기 :1048로 분할이 된다. 그래서 세 번째 패킷의 답은 1048바이트이다.

프로세스 메모리 구조

프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 레지스터, 스택, 포인터, 실행 중인 프로그램, 데이터 등이 프로세스라고 불릴 수 있고 보편적으로는 실행 중인 프로세스를 가리킨다. 이러한 프로세스는 Stack, Heap, Text, Data로 메모리 공간을 나누어 사용한다. 스택 영역 프로그램이 자동으로 사용하는 메모리 영역이고 함수 호출 시 생성된다. 프로그램 함수 내에서 사용하는 지역변수가 저장이 되고 되돌아오는 주소인 복귀 주소도 가지고 있다. 힙 영역 프로그램 실행 중 메모리를 동적으로 할당하는 경우 힙 영역을 사용한다. C에서 malloc() 등의 함수를 사용하여 메모리 크기를 할당할 수 있고 메모리 주소 값에 의해서만 참조되고 사용되는 영역이다. int *i = (in..