반응형

보내는 쪽

  • 상위 계층 → 하위 계층로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보냄 (인캡슐레이션)

받는 쪽

  • 하위 계층 → 상위 계층으로 데이터를 보냄 (디캡슐레이션)
 

현대 네트워크는 대부분 패킷 기반 네트워크

  • 데이터를 패킷이라는 작은 단위로 쪼개 보내는데 이런 기법으로 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러 단말이 통신하도록 해줌
  • 받는 쪽에서는 패킷을 다시 큰 데이터 형태로 결합해 사용

 

인캡슐레이션

  • 데이터를 데이터 flow 계층 (1~4 계층)으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는 과정
  • 위 그림처럼 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙여넣음
  • 헤더 정보는 4계층, 3계층, 2계층에서 각각 자신이 필요한 정보를 추가하는데 이 정보는 알아볼 수 있는 문자가 아닌 미리 정의된 비트 단위(0 or 1)을 씀
  • 2계층에서 필요한 헤더 정보를 추가 후 전기 신호로 변환해 수신자에게 전송
  • 데이터 한개를 전송하는 작업은 생각보다 복잡해서 데이터 플로 계층에서만 3개의 헤더 정보가 추가됨

디캡슐레이션

  • 받은 전기 신호를 데이터 형태로 만들어 2계층으로 올려보냄
  • 2계층에서는 송신자가 작성한 2계층 헤더에 포함된 정보를 확인
  • 3계층에서도 헤더 정보를 확인해 자신에게 온 것이 맞는지 확인하고 맞으면 3계층 헤더 정보를 제거하고 4계층으로 보냄
  • 4계층도 3계층과 같은 과정을 거쳐 데이터를 애플리케이션에 올려보내줌
반응형
반응형

1. Physical layer

  • 물리적 연결과 관련된 정보를 정의 → 주로 전기 신호 전달과 관련

장비

  • 허브, 리피터 : 네트워크 통신을 중재하는 네트워크 장비
  • 케이블과 커넥터 : 케이블
  • 트랜시버 : 컴퓨터의 랜 카드와 케이블을 연결하는 장치
  • 탭 : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제
  • 전기 신호를 그대로 잘 전달하는 것이 목적
    • 전기 신호가 1계층 장비에 들어오면 이 전기 신호를 재생성하여 내보냄
  • 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송
 

2. Data link layer

  • 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리

목적

  • 1 계층의 목적 : 전기 신호를 정확히 전달
  • 2 계층의 목적 : 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는데 초첨이 맞춰짐
    • 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 내가 처리해야 하는지에 대해 검사한 후 데이터 처리 수행
  • 주소 체계가 생기면서 여러 통신이 한꺼번에 이루어지는 것을 구분하기 위한 기능이 주로 정의됨
  • 데이터에 대한 에러 탐지하거나 고치는 역할 수행
    • 과거에는 신뢰할 수 없는 미디어를 이용해 통신하는 경우도 많아 2계층에서 에러 탐지, 수정, 재전송했지만 이더넷 기반 네트워크의 2계층에서는 에러를 탐지하는 역할만 수행


Flow Control

주소 체계를 통해 동시에 여러명과 통신할 수 있으므로 무작정 데이터를 던지는 것이 아니라, 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업

2 계층의 가장 큰 특징

  • MAC 이라는 주소 체계가 있다는 것


네트워크 구성 요소

네트워크 인터페이스 카드와 스위치(Switch)

  • 둘다 MAC 주소를 이해할 수 있고 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있음

 

네트워크 인터페이스 카드

역할

  1. 전기 신호를 데이터 형태로 만든다
  2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다...
  3. 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
  4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리
if 목적지 MAC 주소 == 네트워크 인터페이스 카드가 갖고 있는 MAC 주소:
	데이터 처리()
else:
	데이터 폐기()

 

네트워크 인터페이스 카드(랜카드)에는 고유 MAC 주소가 있음

  • 입력되는 전기 신호 → 데이터 형태로 만들고
  • 데이터에서 도착지 MAC 주소를 확인 후 카드의 MAC 주소와 비교
  • 자신에게 들어오는 전기 신호가 맞으면 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재

 

3. Network layer

IP주소와 같은 논리적인 주소가 정의됨

데이터 통신의 경우 두 가지 주소가 사용됨

  • 물리적인 MAC 주소 in 2 계층
  • 논리적인 IP 주소 in 3 계층 : MAC 주소와 달리 IP 주소는 사용자가 환경에 맞게 변경해 사용가능

IP 주소 구성

  • 네트워크 주소 부분 + 호스트 주소 부문

 

동작하는 장비

라우터

  • 3계층에서 정의한 ip 주소를 이해
  • IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할

 

4. Transport layer

실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할

패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있음 → 이를 바로 잡아주는 역할

4계층에서 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신

  • 패킷이 유실되면 재전송 요청 가능
  • 순서가 뒤바뀌더라도 바로 잡을 수 있음
  • 시퀀스 번호 : 패킷에 보내는 순서를 명시한 것
  • ACK 번호 (Acknowledgement Number) : 패킷받는 순서를 나타낸 것
  • 뿐만 아니라, 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트 번호(Port Number)를 사용해 상위 애플리케이션을 구분

동작하는 장비

로드 밸런서, 방화벽

  • 4계층에서 볼 수 있는 애플리케이션 구분자(포트 번호)와 시퀀스, ACK 번호 정보를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷의 통과 & 차단을 수행

 

5. Session layer 

  • 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊은 역할
  • TCP/IP 세션을 만들고 없애는 책임을 짐
  • 에러로 중단된 통신에 대해 에러 복구과 재전송도 수행

 

6. Presentation layer

  • 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행
  • 일종의 번역기나 변환기 역할
    • EX) MIME 인코딩, 암호화, 압축, 코드 변환 등이 이 계층에서 이뤄짐

 

7. Application layer

애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행

  • 네트워크 소프트웨어의 UI 부분이나 사용자 입,출력 부분을 정의하는 역할
  • 대표적인 프로토콜로 FTP, SMTP, HTTP, TELNET이 있음
반응형
반응형
 
  • 통신할 때의 규약
  • 표준협회나 그룹에 따라 다양한 프로토콜이 존재해왔으나, 최근에는 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있음

프로토콜 사용하는 이유는?

  • 한정된 자원으로 통신을 수행해야 하다 보니 최대한 적은 데이터를 이용해 효율적인 프로토콜을 정의하고 통신하고자 했음
  • 최소한의 비트로 내용을 전송하기 위해 치밀하게 서로 간의 약속을 정의해야 했음

예시

  • 1번째 전기 신호는 보내는 사람 주소
  • 2번째 전기 신호는 받는 사람 주소
  • 3번째 전기 신호는 상위 프로토콜 지시자 등

EX) HTTP 프로토콜 헤더 : 문자로 정의되어 있어 헤더 정의가 자유롭고 확장 가능

GET / HTTP/1.1
Host: mav.mosition.co.kr:8443
Connection: keep-alive
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
  • 실제 텍스트파일과 같은 데이터가 전달되기 때문에 효율성은 비트 기반 프로토콜보다 떨어지지만 다양한 확장이 가능

일반적으로 TCP/IP는 프로토콜이 아닌 프로토콜 스택이라고 부름

  • TCP와 IP는 별도 계층에서 동작하는 프로토콜이지만 함께 사용하고 있는데 이런 프로토콜 묶음을 프로토콜 스택이라고 부름
  • 실제 TCP/IP 프로토콜 스택에는 TCP와 IP뿐만 아니라 UDP, HTTP, SMTP, FTP와 같은 매우 다양한 애플리케이션 레이어 프로토콜이 존재

TCP/IP 프로토콜 스택은 총 4개 부분으로 나뉨

  • 애플리케이션 계층 : FTP, SSH, TELNET, DNS, SNMP
  • 전송 계층 : 잘린 패킷을 데이터 형태로 잘 조합하도록 도와주는 계층 (TCP, UDP)
  • 네트워크 계층 : 목적지를 찾아가도록 해주는 계층 (ICMP, IP, ARP)
  • 물리 계층 : 이더넷(Ethernet)
반응형

+ Recent posts