지난 시간에는 TCP/IP 계층을 살펴보았고, 통신 원리를 Sender 측에서만 살펴보았습니다.
이번 시간에는 통신 원리를 Receiver 측에서 살펴보겠습니다.
데이터를 받는 Receiver 입니다.
Receiver는 반대로 캡슐화된 객체를 각 계층에서 캡슐화 해제를 진행하여 Data(메시지)만 남깁니다.
※ 설명에는 네트워크 관련 용어들이 포함되어 있습니다. 네트워크 관련 용어들을 모르신다면 바로 아래의 링크에서 개념을 이해한 후 다시 돌아와서 읽어보시기 바랍니다.
https://sharpcoder.tistory.com/entry/IT%EC%A0%95%EB%B3%B4-1-%EC%86%8C%EC%BC%93-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%98-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC
각 계층에서 수행하는 역할을 가지고 전송 원리를 설명하자면 아래와 같습니다.
Step 1.
물리 계층이 Packet들을 Frame 단위로 받았습니다. 상위의 데이터 링크 계층으로 올려보냅니다.
Step 2.
Receiver의 경우, 데이터 링크 계층에서 수행하는 기능은 별로 없습니다. Frame 단위로 묶인 Packet들을 그룹핑 해제한 다음 상위의 네트워크 계층으로 올려보냅니다.
Step 3.
네트워크 계층은 Packet에 있는 목적지 IP주소를 확인해 자신의 IP주소인지 확인합니다. 맞으면, Packet들을 Segment로 다시 묶은 다음 상위의 전송 계층으로 올려보냅니다.
Step 4.
전송 계층은 Segment에 있는 checksum과 실제로 받은 데이터를 비교하여 손실 여부를 판단합니다. 이러하여 전송 계층에서 오류 제어가 가능한 것입니다. 그리고 포트번호를 확인해 적합한 프로세스를 찾아냅니다. 찾아냈으면, Segment들을 Data로 다시 묶은 다음 상위의 응용 계층으로 올려보냅니다.
Step 5.
Receiver의 경우, 응용 계층에서 수행하는 기능이 별로 없습니다. 하위 계층에서 올려보낸 Data, 즉, Sender가 전송한 메시지를 Receiver가 받게 해주는 것 이외에는 하는 일이 없습니다.
메시지의 변동을 짧게 요약하자면 아래와 같습니다.
Frame → Packet(Datagram) → Segment → Data
통신 원리를 Receiver 측에서 실제 상황으로 비유해보겠습니다.
왼쪽에 있는 캐릭터가 '치카' 이고, 오른쪽에 있는 캐릭터가 '요우' 입니다.
치카네 트럭이 요우네 집에 도착해서, 요우한테 직접 귤을 갖다주는 상황이라고 가정하겠습니다.
요우네 집에 도착한 치카는 요우한테 직접 귤을 직접 갖다주려고 합니다.
오랜 시간 끝에, 치카네 트럭이 요우네 집에 도착했습니다. (물리 계층)
하지만, 정말 요우네 집이 맞는지 확인하기 위해 건물 외관에 적혀있는 집 주소랑 비교해보았습니다. 확인 결과, 요우네 집이 맞는 것으로 확인되었습니다. (네트워크 계층)
요우네 집이라는 것이 확인되자 집 안으로 들어갔습니다. 요우한테 직접 귤을 갖다주기 위해 적혀있는 방 번호를 찾다가, 마침내 찾아냈습니다. 그리고 박스를 열어 적혀있는 갯수가 실제 귤 갯수랑 서로 일치한지 확인해보았습니다. (배송 중 손실이 발생하였는지 검토해보는 것입니다.) 문제가 없다는 것이 확인되자 노크한 후 방 안으로 들어갔습니다. (전송 계층)
그 방 안에 요우가 있었고, 치카는 요우한테 직접 귤을 전달하였습니다. 요우는 웃으면서 고맙다는 인사를 건넸습니다. (응용 계층)
여기까지, TCP/IP 계층과 통신 원리를 살펴보는 강의는 마치도록 하겠습니다.
다음에는 네트워크 분석 실전을 본격적으로 진행하겠습니다.
'IT강의 > 데이터통신' 카테고리의 다른 글
안드로이드 VPN 우회 및 IP 분석 (3) | 2020.12.26 |
---|---|
VPN 우회의 원리 (3) | 2020.12.26 |
TCP/IP 계층 및 통신 원리 - Sender편 (0) | 2020.12.26 |
소켓 프로그래밍 기초 실습 - UDP편 (0) | 2020.12.26 |
소켓 프로그래밍 기초 실습 - TCP편 (0) | 2020.12.26 |