티스토리 뷰
OSI 모델과 TCP/IP 모델을 기준, 키워드 중심으로 기본 개념을 정리합니다.
네트워크란?
- 컴퓨터 간의 연결을 컴퓨터 네트워크 줄여서 네트워크라 한다
- 작은 네트워크부터 거대한 네트워크까지 아우르는 연결된 거대한 네트워크를 인터넷이라고 한다
규모에 따른 구분
- PAN(Personal Area Network)
- LAN(Local Area Network)
- WAN(Wide Area Network)
- ISP(인터넷 서비스 제공자, i.e. KT, U+)가 제공하는 서비스를 사용하여 구축된 네트워크
캡슐화/역 캡슐화
데이터를 보내기 위해서는 목적지까지 전달을 위해 헤더라고 불리는 곳에 정보가 담긴다. 각 계층별로 처리하는 정보 내용이 다르다
- 캡슐화: 데이터 송신을 위해 L7에서 L1로 거치면서 헤더가 추가된다
- 역 캡슐화: 데이터 수신을 위해 L1에서 L7로 오면서 헤더가 제거된다
통신 방식
전이중 |
반이중 |
|
|
TCP/IP model VS OSI 7 model
OSI 7 Layers
ISO(International Organization for Standardization)에서 정한 데이터를 주고받기 위한 통신 규격
TLDR
역할 | 데이터 단위 | 장비 | 프로토콜 | |
L1(Physical Layer) | 전기신호 변환 및 제어 | Bits | UTP/STP Cable, Repeater, Hub | Coax,Fiber,Wireless |
L2(Data Link Layer) | 데이터 전송 및 물리 주소 결정(MAC) | Frame | Switch | Ethernet |
L3(Network Layer) | 네트워크와 통신하기 위한 경로 설정 및 논리 주소(IP) 결정 | Packets | Router | IP,IPsec,ICMP |
L4(Transport Layer) | 신뢰할 수 있는 데이터 전달 구현 | Segments | TCP,UDP | |
L5(Session Layer) | 앱간의 세션 관리 | Data | API's, Socket | |
L6(Presentation Layer) | 네트워크의 데이터 번역자로서의 역할 | Data | 텔넷 | |
L7(Application Layer) | 프로세스 간 통신 접속 | Data | HTTP, FTP, SMTP |
L1(Physical Layer, 물리계층)
- 시스템 간의 물리적인 연결과 전기 신호 변환 및 제어
- 랜 케이블 → 트위스트 케이블(Twisted cable)
- UTP/STP
- UTP(Unshielded Twisted Pair): 저렴하고 노이즈에 취약, 4쌍의 구리선, 주로 많이 사용
- STP(Shielded Twisted Pair): 비싸지만 노이즈에 강함, 1쌍의 구리선
- Straight Through(Direct)/Cross over cable
- 8개의 구리선이 송신과 수신 측에서 연결되는 번호에서 차이가 난다.
1,2,3,6번 선을 사용하며 나머지 네 개는 사용하지 않는다 - Rollover Cable: 네트워크 장비 관리를 위하여 시리얼 통신으로 콘솔과 연결하는 케이블
- UTP/STP
- 네트워크 장비
- 리피터: 다른 장비가 기능을 지원하기 때문에 현재는 사용되지 않는다. 멀리 떨어져 있는 컴퓨터 간 신호를 정형화하고 증폭하는 기능을 갖고 있는 중계 장비
- 허브
- 여러 개 포트에 연결하여 컴퓨터 간 직접 연결하지 않고 컴퓨터를 연결
- 데이터 신호 전달에 있어 컴퓨터를 특정 지을 수 없다. 모든 포트에 동일하게 전달
- 여러 컴퓨터가 동시에 전달하면 충돌(Collision)이 발생
- 충돌 도메인이 허브에 연결된 모든 컴퓨터
L2(Data Link Layer, 데이터 링크 계층)
- 네트워크 기기 간의 데이터 전송 및 물리 주소 결정
- 데이터 맨 앞에 이더넷 헤더가, 마지막에 trailer 붙는다 →이더넷 헤더+데이터+트레일러=프레임
- 이더넷 헤더(14바이트)
- 목적지 MAC 주소(6바이트)
- 출발지 MAC 주소(6바이트)
- 유형(2바이트): 상위 프로토콜의 종류
- i.e. IPv4, ARP...
- 트레일러: FCS(Frame Check Sequence)
- 데이터 전송 중에 오류가 발생했는지 확인
- 이더넷 헤더(14바이트)
- 프로토콜: 이더넷 사용
- 데이터에 목적지 정보(MAC 주소)를 추가하여 컴퓨터를 특정
- 48비트, 16진수로 표기
- 전 세계에서 유일한 번호로 랜카드가 갖는 물리 주소
- CSMA/CD(Carrier Sense Multiple Detection)를 통해 충돌 해결
- 현재는 효율이 좋지 않아 사용되지 않는다 → 스위치가 해결
- 데이터에 목적지 정보(MAC 주소)를 추가하여 컴퓨터를 특정
- 네트워크 장비: 스위치(레이어 2 스위치/스위칭 허브)
- MAC 주소 테이블: 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소
- 포트에 연결된 각각의 컴퓨터가 충돌 도메인
- 플러딩: 프레임이 도착 전까지는 테이블에 정보가 담기지 않기 때문에 데이터 전송을 위해 정보가 없는 모든 포트들이 스위치로 프레임 전송
- ARP(Address Resolution Protocol) 요청을 통해 MAC 정보를 알 수 있다.
- IP 주소를 통해 네트워크에 브로드캐스트
- ARP 테이블에 정보를 저장하며 IP가 바뀌면 다시 갱신해야 한다
- ARP(Address Resolution Protocol) 요청을 통해 MAC 정보를 알 수 있다.
- 필터링: 프레임이 왔을 때 해당 프레임의 도착지 정보가 있으면 플러딩 없이 도착지로만 전송을 한다. 이때 도착지 정보를 찾는 것을 MAC 주소 필터링이라고 한다.
L3(Network Layer, 네트워크 계층)
- 네트워크 간의 통신을 가능하게 하는 역할
- 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소 결정
- 네트워크 장비: 라우터, 레이어 3 스위치
- 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 기능
- IP 주소를 사용하여 네트워크 식별
- 라우터 IP = 게이트웨이 = 네트워크 출입구
- i.e. 192.168.1.0/24 일 때 192.168.1.1
- 라우팅 테이블에 다른 네트워크로 가는 최적의 경로 저장
- 라우팅 프로토콜: 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜
- RIP, OSPF, BGP 등
- 프로토콜: IP(Internet Protocol)
- 헤더 → 프레임에 IP 헤더가 앞에 붙으면서 패킷이라고 불린다
L4(Transport Layer, 트랜스포트 계층)
- 목적지에 신뢰할 수 있는 데이터 전달 구현
- 오류 점검 기능
- 목적지가 어떤 애플리케이션인지 식별
- 신뢰성/효율성
- 신뢰성: 연결형 통신=TCP
- 효율성: 비연결형 통신=UDP
- TCP/UDP 헤더가 앞에 붙으면서 세그먼트(segment)라 불린다
L5(Session Layer, 세션 계층)
- Application 간의 대화를 유지하기 위한 구조 제공
- 세션 체결, 통신 방식 등을 결정
- 전송 모드 결정(반이중, 전이중, 단방향, 병렬, 직렬, 동기, 비동기 등)
- 대화와 동기를 위한 데이터 교환을 관리(송수신의 동기권 제어)
L6(Presentation Layer, 프레젠테이션 계층)
- 네트워크의 데이터 번역자로서의 역할(어프리케이션 간에 잘 통신할 후 있도록 변환 작업)
- 문자 코드, 압축, 암호화 등의 데이터를 변환
L7(Application Layer, 응용 계층)
- 프로세스 간 통신 접속을 위해 설계된 추상 계층
- 이메일, 파일 전송, 웹 사이트 등 Application에 대한 서비스 제공
IP
- Network ID + Host ID로 표현된다
- Network ID: 어떤 네트워크인지 구분하는 값
- Host ID: 어떤 컴퓨터인지 구분하는 값
- 브로드캐스트 IP, 네트워크 IP
- 네트워크 IP
- 네트워크를 대표하는 주소
- 호스트 ID가 모두 0
- 브로드캐스트 IP
- 네트워크에 있는 모든 컴퓨터에게 데이터 전송하는 데 사용되는 주소
- 호스트 ID가 모두 1
- 네트워크 IP
- 32비트, 10진수로 표기
- 8비트를 옥텟(octet)으로 부름
IPv4 vs IPv6
IPv4로는 사용할 수 있는 IP가 부족하기 떄문에 IPv6이 등장
- IPv4: 32비트 → 약 43억개
- IPv6: 128비트 → 340간(340조의 1조 배의 1조 배)
Public/Public(공인 IP/사설 IP)
IPv4의 부족한 IP를 해결하기 위해 나온 방법
- Public IP: 인터넷에서 식별되는 주소
- Private IP: LAN에 있는 컴퓨터 내에서만 식별되는 주소, 공인 IP로 사용될 수 없다
- A class: 10.0.0.0 ~ 10.255.255.255
- B class: 172.16.0.0 ~ 172.31.255.255.255
- C class: 192.168.0.0 ~ 192.168.255.255
Network Class
네트워크의 크기에 따라 A~E로 5가지로 구분, 클래스에 따라 용도가 정해져 있다
- A: 대규모 네트워크
- 8bit network id + 24bit host id
- 1.0.0.0 ~ 127.255.255.255
- B: 중간 규모 네트워크
- 16bit network id + 16bit host id
- 128.0.0.0 ~ 191.255.255.255
- C: 소규모 네트워크
- 24bit network id + 8bit host id
- 192.0.0.0 ~ 2223.255.255.255
- D: 멀티캐스트(multicast) 주소
- E: 연구 및 특수용도 주소
서브 넷팅(Subnetting)
subnetting: 네트워크를 분할하는 것, Host ID를 사용
subnet: 분할된 네트워크
subnetmask: IP에서 Network ID와 Host ID를 명시하기 위해 사용되는 값
- 192.168.1.0, 255.255.255.0
- Prefix 표기법 → 192.168.1.0/24
Reference
- https://brunch.co.kr/@toughrogrammer/16
- https://blog.naver.com/PostList.naver?blogId=ttochid1&from=postList&categoryNo=52
- https://ko.wikipedia.org/wiki/OSI_모형
- 내부 네트워크에 존재하지만 외부에서 접속할 수 있는 특수한 네트워크 영역 [본문으로]
- Cable의-종류-상황에-맞는-Cable-사용법 [본문으로]
반응형
'CS' 카테고리의 다른 글
[Network] HTTP/0.9 ~ 1.1 (0) | 2022.01.03 |
---|---|
[Network/OS] Network Socket(IP Socket, WebSocket) (0) | 2021.12.27 |
Interpreter VS Compiler (0) | 2021.11.26 |
[DB]Transaction(Race condition, Isolate level (0) | 2021.11.16 |
[Network]Cloud 종류 (0) | 2021.10.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- go
- user-agent
- GitHub
- Network
- Git
- http
- docker-compose
- gitignore
- web_server
- Python
- QUIC
- 프리온보딩
- thetextbook
- HTTP/3
- no-op
- inflearn
- Isolate level
- HTTP/2
- buildkit
- pytest
- MSA
- 창업
- database
- 원티드
- direnv
- k8s
- 위코드
- cka
- Complier
- 덕타이핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함