Network protocol
서론
참조
(2)Computer Network (Data 전달과정)
- 간단한 키워드를 통해서 정리해보겠습니다.
- 완벽하게 제가 궁금했던 정보가 있습니다. 네트워크 지식이 파편으로 있었는데 조금 정리가 되는 것 같습니다.
Protocol
- 통신에 참여하는 주체 간의 Data를 주고받는 과정을 정의한 규칙
- 효율성, 호환성을 위해 정해 놓은 규칙으로 다수의 업체와 관련 제품군의 등장 및 이용 가능
- 통신을 위해 사용하는 프로토콜이 엄청 많다. 통신하는 컴퓨터끼리는 같은 프로토콜들을 사용해야 통신할 수 있는데 이 사용하는 프로토콜들을 프로토콜 스택이라고 한다. 현재는 TCP/IP 프로토콜 스택이 가장 많이 사용된다.
- 실제로 하는 것
- Data(Message)의 포맷과 구조화
- Network Device에서 어떻게 처리할 것인지에 대한 정보
- Device간의 Error 처리에 대한 방식
- Data 전송 절차의 Setup과 종료
OSI 7 Layer
- Data가 전달되기 위한 과정을 계층화 => 모듈화
- 복잡도를 줄이고, 모듈화를 통한 기술 발전, 호환성 가능, 상호 독립성을 가질 수 있음.
- OSI 7 Layer는 이론적인 참조 모델이고 실제론 TCP/IP 모델을 사용한다.
- Application
- Presentation
- Session
- Transport
- Network
- Data Link
- Physical
- TCP/IP
- Application
- Transport
- Network
- Network Access
캡슐화/디캡슐화
- Application에서 만들어진 Data가 해당 Device에서 네트워크를 통해 전달되는 과정
- 각 계층에서 동작하는 protocol 별로 정보(헤더)가 추가되고, 벗겨지는 과정
- 네트워킹한다는 의미의 기술적인 설명임
헤더
각각의 헤더는 아래의 정보를 담고 있다.
- Application
- Encoded application data
- Transport
- Destination and Source process number (ports)
- TCP/UDP information
- Network
- Destination and Source logical network addresses (IP Addr.)
- Data link
- Destination and Source logical physical addresses (MAC Addr.)
캡술화(Encapsulation)
- Application에서 data가 만들어진다.
- Transport 계층으로 data가 내려오고 거기에 sport와 transport 정보를 헤더로 붙여서 Segment가 만들어진다. (TCP의 경우는 이런 걸 하기 전에 연결을 확보하는데 그것은 TCP 프로토콜을 공부하면서 다시 적겠습니다.)
- Network 계층으로 Segment가 내려오고 거기에 sIP와 dIP를 붙여서 Packet을 만든다.
- 이때 그럼 dIP를 어떻게 구할 것이냐는 DNS를 통해서 구한다.
- 마지막으로 Data Link 계층으로 Packet이 내려오고 sMAC과 dMAC을 붙여서 Frame을 만든다.
- 그럼 dMAC은 어떻게 아느냐? 목적지로 바로 가는 것이 아니기 때문에 Next Hop의 MAC주소를 적는다. Next Hop의 MAC주소는 라우팅 테이블에 쓰여 있다. 그리고 라우팅을 통해서 Next Hop의 IP를 구하는 것이 라우팅.
- 이제 이게 전기적인 신호로 네트워크로 들어가게 된다.
스위치
스위치는 Frame을 받고 Frame을 해석할 수 있는 기능이 있다. Frame을 해석해서 내가 어떤 Interface로 Frame을 다시 내보내야 하는 지를 판단한다.
라우터
라우터도 Frame을 받는다(사실 모든 네트워크 장비는 Frame을 받는다.) Frame을 해석해서 dMAC이 자기 자신의 MAC이면 Frame을 디 캡슐화해서 패킷을 또 해석한다. 패킷의 dIP정보를 보고 Next Hop의 dMAC주소(라우팅과 ARP로 확인함)로 다시 캡슐화해서 Next Hop으로 보낸다.
서버
결국 서버가 Frame을 받게 되면 dMAC도 자기 자신, dIP도 자기 자신이므로 패킷도 디 캡슐화하여 Segment를 확인하게 되고 Segment에 쓰여 있는 포트 번호를 확인하여 필요한 프로세스에 data를 전달하게 된다. 예제에선 HTTP 통신이었으니 index.html을 달라고 했을 테니 index.html을 돌려주게 된다.
생각
- 라우터들은 도착한 프레임 데이터를 까서 Destination IP를 확인한 후 그 IP를 가진 Terminal이 있으면 다시 MAC 주소로 캡슐화하여 보내거나 없으면 Next Hop에 해당하는 MAC 주소로 캡슐화하여 Next Hop으로 보낸다.
- 이 부분이 항상 궁금했다. layer를 거쳐서 한방에 캡슐화를 하고 받아서 한방에 디 캡슐화로 다 까보는 게 아니라 각 네트워크 장비들은 한 계층씩 디 캡슐화를 하며 목적지를 계속 확인하며 각 계층을 왔다 갔다 한다. 그리고 결국 마지막에 도착지에 도착했을 때 모든 layer를 디캡슐하게 된다.
- 호스트가 통신을 한다는 것은 각 계층에서의 헤더를 만드는 과정이다. 소스는 알 수 있지만 데스티네이션은 알 없으므로 destination IP는 DNS로, destination MAC은 Routing과 ARP로 알 수 있다.
- Framce의 dMAC정보만 계속 바뀌면서 네트워킹이 된다. 학교 수업을 들으면서도 너무나도 궁금하고 교수님도 알려주지 않았던...드디어 알았습니다..
Network내 다른 글 보기
댓글남기기