CS

네트워크 기초 이론 무지성 정리 2

2023. 4. 20. 17:29
목차
  1. LAN과 WAN
  2. 패킷의 생성 원리와 캡슐화
  3. L2 스위치
  4. IP 헤더
  5. Wireshark의 작동 구조와 원리

돌아온 네트워크 기초 이론 무지성 정리 시간!!

지난번 무지성 정리가 은근 지성 향상에 도움이 되어서 이번에도 기대되는 바입니다.

그럼 레쯔고!!🙌

출처: 널널한 개발자 TV
https://youtu.be/k1gyh9BlOT8

 

LAN과 WAN

Local Area Network와 Wide Area Network.

지역의 크기라는 것은 상대적인 건데 어디까지?라는 생각을 했는데 그것이 아니다.

물리적인 부분을 말하는 피지컬과 소프트워어적인 부분을 말하는 로지컬이 있는데 로지컬은 버추얼이라고 바꿀 수 있다.

IP란 인터넷에서 사용되는 프로토콜인데, 인터넷은 로지컬 네트워크. 다른 말로 하면 버추얼 네트워크.

인터넷이라는 것을 우리가 WAN을 위한 통신 프로토콜이라고 볼 만하다.

LAN과 WAN을 논리적인 것이냐 물리적인 것이냐로 설명을 하는 것이 타당하지 않을까?

인터넷은 광대역 통신 네트워크고, 버추얼.

그렇다면 LAN은 1계층, 2계층이라고 말할 수 있다. 하드웨어로 설명할 수 있는 부분. 정답은 아니고 뇌피셜이다.

2계층에서 가장 중요한 식별자가 MAC 주소. 48비트, 6바이트. 이 맥 주소로 식별되는 네트워크가 LAN.

4계층에서 가장 중요한 식별자는 IP 주소.

LAN은 MAC 주소를 기초해서 작동하는 네트워크, WAN은 IP 주소를 기초해서 작동하는 네트워크라고 봐도 좋다.

주소들 중에 특수 주소가 있는데, 방송주소. 방송주소가 적용되는 범위가 LAN(방송주소.. 그게 몬데요....)

 

패킷의 생성 원리와 캡슐화

유저 모드 프로세스가 존재하고, 그 밑에 커널 영역에 TCP/IP가 있고 , 그 밑에 디바이스 드라이버가 있고, 맨 아래에 네트워크 인터페이스 카드가 있어서 랜 케이블 꽂혀서 인터넷으로 간다.

TCP를 유저 모드 어플리케이션 프로세스가 접근할 수 있도록 추상화한 인터페이스가 소켓이다.

소켓의 본질은 파일의 일종. 모든 프로그램은 이 파일에 대고 읽든지 쓰든지 한다. 다른 말로 입출력.

중요한 것은 단위인데, 여기서는 스트림. 스트림은 쭈우우욱 늘여진 것, 언제 끝날지 모른다.

스트림이 소켓 타고 내려갈 때 TCP를 만나면 분해가 된다. 잘라진 단위가 세그먼트, 그다음이 패킷, 프레임.

이더넷 네트워크면 이더넷 프레임.

그러면 패킷은 어떻게 생성되나. 소켓단에서 자바로든 뭐로든 프로그래밍을 해서 네트워크로 보낸다고 함수를 딱 호출하는 순간 TCP로 가서 쪼개진다.

패킷은 최대 길이(MTU)가 1500바이트 크게 둘로 나뉜다. 헤더 부분과 페이로드 부분.

헤더는 다시 둘로 나뉜다. 앞단에 IP 뒤에 TCP 헤더. 일반적으로 각각 20바이트.

그렇다면 페이로드는 1460바이트. 즉 스트림이 1460바이트씩 잘리는 것.

패킷은 택배를 생각하면 된다. 송장이 곧 헤더.

추가적으로 알아야 하는 것이, 보안 때문에 페이로드 안을 조사할 때 디패킷인스펙션(DPI).

세그먼트라는 것은 택배 내용물 같은 것이다. 패킷에 넣는 것이 곧 캡슐화, 인캡슐레이션.

프레임은 택배 보낼 때 싣고 가는 트럭. 그것도 캡슐화다.(눈높이 설명... 최고된다..)

 

L2 스위치

L2 스위치는 한마디로 MAC 주소로 스위칭하는 것이다. MAC 주소는 48비트. 

네트워크라는 것은 한마디로 스위치의 집합체와 같은 것이다.

NIC에서 나가서 만나는 것이 L2 Access 스위치. 이 스위치에서 선이 나와서 또다른 스위치로 간다.

L2 distribution 스위치. 스위치를 위한 스위치. 이 스위치에 다른 L2 스위치가 연결될 수 있다. 

L2 액세스와 디스트리뷰션의 가장 큰 차이는 무엇을 위한 스위치냐에 따른 것.

네트워크 자체와 네트워크 이용 주체를 구분해야 하는데, 이용 주체는 엔드포인트.

엔드포인트가 제일 처음 만나는 스위치가 액세스 스위치고, 스위치를 위한 스위치가 디스트리뷰션 스위치.

디스트리뷰션에서 나와서 게이트웨이 역할을 수행하는 라우터, 그다음으로 인터넷으로 연결이 된다.

상위 계층 스위치로 연결되는 라인이 업링크.

출처: 널널한 개발자 TV

 

IP 헤더

IHL: Internet Header Length 5비트.

TOS: Type Of Service

두번째 줄에 있는 것들은 단편화와 관련돼 있다. 가끔 MTU가 1400밖에 안 되는 경우가 있다. 1500을 둘로 나눠서 보내는 것. 안 그래도 작은 패킷이 더 작아지고, 나중에 조립도 해야 한다. 안 하는 게 좋은 것.

TTL: Time To Live 인터넷은 라우터의 거대한 집합체라고 했다. 라우터가 패킷을 유통하는 과정에서 라우터를 하나 지나갈 때마다 TTL이 1씩 감소한다. 감소하다가 0이 되면 패킷을 버린다.

Protocol: 4계층 헤더가 뭔지를 정의.

Header Checksum: 오류 여부를 체크

Source Adress, Destination Adress: IP주소로 출발지 주소와 도착지 주소.

Wireshark은 필수. 

 

Wireshark의 작동 구조와 원리

크롬이 작동중이라고 하면 HTTP(L7)/TCP(L4)/IP를 기반으로 통신을 하는데 TCP를 추상화한 소켓을 기반으로 데이터를 주고받는다.

소켓을 말할 때 언제나 소켓 스트림을 생각해야 한다. 

IP와 드라이버 사이에 필터가 있을 수 있다. 통과시키는 경우가 있고 막아버리는 경우가 있다.

통과시키는 경우는 bypass. 만약 필터링을 해버렸으면 drop.

트래픽이 호스트에서 네트워크쪽으로 나갈 때는 outbound라고 하고 들어오면 inbound라고 한다.

만약 필터를 안하고 다 bypass시키고 감시만 하면 센서라고 부른다.

센서는 역할적 의미로는 수집.

wireshark를 설치하면 센서가 설치되는 것인데 그 이름은 Npcap.

와이어샤크가 하는 일은 센서를 수집하고 디코딩하는 것. Analyzer.

센서로부터 수집받은 데이터를 사람이 알아들을 수 있게 해석해준다.

그런데 기본적으로 하는 일은 수집인데, 남의 것을 수집해서 읽으면 목적이 도감청.

수집에 관해서 유의해야 할 것은 남의 것을 읽으면 현행법 위반...

따라서 wireshark는 애널라이저이기도 하지만 sniffer라고 할 수도 있음. 사용할 때 윤리의식이 필요하다.

 

 

'CS' 카테고리의 다른 글

[OS] 메모리 공간, 스택 영역, 힙 영역  (0) 2023.09.02
[OS] 프로세스, 스레드  (0) 2023.08.28
[Network] CORS 정책과 CORS 오류 해결법  (0) 2023.08.23
[Network] HTTP, HTTPS  (0) 2023.08.16
네트워크 기초 이론 무지성 정리  (2) 2023.03.28
  1. LAN과 WAN
  2. 패킷의 생성 원리와 캡슐화
  3. L2 스위치
  4. IP 헤더
  5. Wireshark의 작동 구조와 원리
'CS' 카테고리의 다른 글
  • [OS] 프로세스, 스레드
  • [Network] CORS 정책과 CORS 오류 해결법
  • [Network] HTTP, HTTPS
  • 네트워크 기초 이론 무지성 정리
JeanneLee57
JeanneLee57
공부하고 기록을 남기는 개발자 Jeanne
JeanneLee57
코딩은 진리
JeanneLee57
전체
오늘
어제
  • 분류 전체보기 (115)
    • Javascript (15)
    • React (15)
    • Next.js (8)
      • Next.js 베타 문서 번역 (5)
    • 프로젝트 (34)
      • 미니 프로젝트 & 과제 (25)
      • SEB 44 pre-project (1)
      • SEB 44 main-project (8)
    • 알고리즘 (12)
    • 부트캠프 준비 (6)
    • 기술면접 (3)
    • CS (7)
    • 코드스테이츠 프론트엔드 부트캠프 (12)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 알고리즘
  • 구조분해할당
  • 회고
  • 코드스테이츠
  • 번역
  • useEffect
  • 유데미
  • 부트캠프
  • 프리코드캠프
  • CSS
  • 부트캠프준비
  • HTML
  • 고차함수
  • codestates
  • JavaScript
  • react
  • RTK
  • 프론트엔드
  • Next.js
  • 프로그래머스

최근 댓글

최근 글

hELLO · Designed By 정상우.
JeanneLee57
네트워크 기초 이론 무지성 정리 2
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.