Physical Layer
Data Link Layer
Nerwork Layer
Transport Layer
Segment 단위
통신 주체끼리의 데이터 신뢰성 확보하는 층(패킷 순서, 에러 처리 등)
Port : IP 프로토콜에서 패킷을 올바른 프로세스로 라우팅 하기 위한 논리적 단위
- 목적지 기기에 도착하더라도 여러 프로세스들이 돌아가고 있음
- 포트 번호를 통해 알맞은 프로세스를 찾을 수 있음
- 1~1023번은 보통 잘 알려진 서비스(well-known ports)를 위해 예약되어 있음 -> 사내망이나 서버 테스트용 임의 포트 지정할거면 저거 이외에 다른거 써라(ex.8080, 3000, 9000)
- 다른 외부 서버에 요청을 보낼 때 사용하는 포트는 보통 임시로 할당받는 동적 포트를 사용
TCP : 신뢰성 있는 전송 보장
- 3 way handShake를 통해 패킷의 순서나 전달여부등을 보장
- HTTP/HTTPS/FTP/SSH/DNS 등에 사용
UDP : 빠르고 간단하게 데이터를 주고 받을 수 있는 방법을 정의
- TCP와 달리 데이터의 무결성, 순서, 전달여부 노상관
- 그래서 신뢰성은 낮지만 속도가 빠르고 세그먼트 용량이 작음
- DNS/DHCP/VoIP(음성통화) 등에 사용
windows는 터미널 창에 netstat -ano라고 입력하면 현재 사용중인 포트들을 볼 수 있다. 내 노트북 열린 포트들도 뭐 있나 궁금해서 한 번 살펴보았다.

뭐 이리 많아
밑에도 한참 더 있었는데 너무 길어서 잘랐다.
궁금해서 상위 2개 포트가 어따 쓰이나를 검색해봤는데 135번 포트는 주로 Windows 운영체제에서 RPC(원격 프로시저 호출) 서비스에 사용되고, 445번 포트는 SMB(서버 메시지 블록) 프로토콜에 사용되며, 네트워크 상에서 파일 및 프린터 공유를 가능하게 하는 Microsoft-DS 서비스에 사용된다고 한다.
Session Layer
Presentation Layer
Application Layer
사용자가 www.naver.com을 입력함
DNS서버를 통해 해당 도메인과 매핑된 IP주소를 반환
목적지 주소를 알았으니 IP패킷 생성
목적지 IP가 같은 네트워크인지 확인
다른 로컬 네트워크라면 라우터(게이트웨이)의 IP로 ARP패킷 브로드캐스트
라우터가 자신의 MAC주소를 알려줌. 해당 주소로 패킷 전송
라우터에 패킷이 도착하고, 라우터가 목적지 IP(최종 목적지) 확인
라우터가 라우팅 테이블을 통해 최적 경로 탐색
NAT로 출발지의 사설 IP 주소를 라우터 자신의 공인 IP주소로 변경. (다시 돌아올때 이거 보고 돌아옴)
라우터가 출발지, 목적지 MAC주소 변경해서 전달. (라우터의 MAC주소, 다음 라우터의 MAC주소로)
다음 라우터는 목적지 IP와 자신의 네트워크 IP 주소 대조.
도착할때까지 10번 반복(ARP 브로드캐스팅 통해서 계속 MAC주소 물어봄)
해당 로컬 네트워크 라우터에 패킷이 도착하면 라우터는 ARP 브로드캐스팅을 통해 최종 목적지의 MAC주소를 얻고 마지막 전송을 함.
공부하면서 이런 의문이 들었는데 MAC주소 자체가 완전 고유한 번호인데 얘만을 이용해서도 경로를 찾을 수 있지 않나? 굳이 IP주소를 도입해서 왜 주소를 2개로 만들지? 라는 생각이 들었다.
하지만 MAC주소만을 이용해 통신을 하게 되면 전 세계적 통신이 불가능했을 것이다.
우선, MAC주소는 특정 네트워크에 속해 있지 않아서, 하나하나가 인터넷이라는 방대한 공간의 노드가 되어 버린다. 이렇게 되면 효율적 경로를 통해 찾아가는 것이 불가능해지고 하나하나 대조를 해봐야 한다. 전 세계의 모든 기기에....
그리고 브로드캐스트 한 번 했다간 전 세계 사람의 컴퓨터에 요청이 간다...
IP주소는 이러한 단점을 극복하기 위해 만들어진 논리적 주소라고 할 수 있으며 기기들끼리 묶어 로컬 네트워크를 구성할 수 있게 해준다.