CCNA 강의 1 : 네트워크란 ? / LAN, WAN / OSI 7 Layers (4~7계층)
Network Fundamentals
1. Network 란 ?
서로 다른 장치(장비 or 시스템 등)들끼리 연결되어 통신이 되는 상태
통신의 3요소
- 송신자
- 수신자
- 통신매개체 (송신자와 수신자를 연결하는 역할)
2. 종류
LAN ( Local Area Network ) : 근거리 통신망, 내부망
- 관리자가 직접 관리 (내가 직접 관리, 설정)
- 현재 1Gbps의 속도를 가진다
- 이더넷 카드 - UTP 케이블
- 허브 : 전기신호를 증폭해주는 장치 (전기신호가 약해지면 정보가 깨질 수도)
WAN ( Wide Area Network ) : 원거리 통신망, 외부망
- 서비스 제공 업체 (ISP : Internet Service Provider) 에서 관리를 하기 때문에 관리가 용이
- 보통 56Kbps ~ T1(1Mbps) or E1(2Mbps) 로, 느린 연결을 가진다
- 라우터끼리의 연결 : 시리얼 카드, DTE ——– DCE 선 ( DTE 선 : 라우터에 꽂음 / DCE 선 : CSU or DSU )
3. Protocol ?
서로 다른 장비가 대화하기 위해 미리 정해놓은 통신규약 HTTP / HTTPS : 웹 브라우저에서 웹을 이용하기 위한 프로토콜 FTP : 파일 전송을 위한 프로토콜 (FTP 서버)
TCP/IP Network
1. OSI 7 layer vs TCP/IP Model Layer
- 서비스 제공 업체 (ISP : Internet Service Provider) 에서 관리를 하기 때문에 관리가 용이
- 보통 56Kbps ~ T1(1Mbps) or E1(2Mbps) 로, 느린 연결을 가진다
- 라우터끼리의 연결 : 시리얼 카드, DTE ——– DCE 선 ( DTE 선 : 라우터에 꽂음 / DCE 선 : CSU or DSU )
7계층 : Application Layer (응용 계층)
시스템에 설치된 프로그램(엑셀, 메모장, 카톡 … )을 이용하는 계층
ex) 컴퓨터, 스마트폰, 인베디드 시스템 등 실제적인 장비
대표적인 기능 (인터넷 서비스)
- File Transfer (TFTP, FTP)
- E-mail (SMTP, POP3)
- Remote Login (Telnet, SSH)
- Name Management (DNS)
- WWW (HTTP, HTTPS)
6계층 : Presentation Layer (표현 계층)
데이터를 표준형식으로 변환 또는 암호화 (7계층 중 임베디드 시스템은 속하지 않음)
ex) *.txt, *.zip, *.mp4 등 확장자를 정함
5계층 : Session Layer (세션/연결 계층)
보내진 모습과 받은 모습의 결과가 동일하도록 만듦
ex) SSL (암호화로 전송하는 원격 프로토콜)
*7 ~ 5 계층의 데이터 전송 단위 (PDU : Protocol Data Unit) : 메세지 (Message)
4계층 : Transport Layer (전송 계층)
사용자 간 데이터의 투명한 전송을 제공하고, 상위 계층의 신뢰성 있는 데이터를 전송하는 서비스 제공(TCP) // 전송 방식을 정해줌 (UDP vs TCP)
UDP : User Datagram Protocol
데이터 전송의 단위가 작고, 안전하지 않지만 (보안성이 낮음) 오버헤드가 적어, 빠른 전송 서비스를 제공하는 프로토콜이다 ( 음성, 영상 등의 데이터 전송에 적합 : TV)
비연결형 프로토콜로, 수신자의 준비 상태를 판단하지 않으며, 인터넷상에서 정보를 주고받을 때 정보를 보낸다 또는 받는다는 신호 절차( TCP의 3/4-way hand shake 에 해당하는 과정이 없다는 뜻 같다 )를 거치지 않고 일방적으로 데이터를 전달한다 (단방향). 또한, 송신 측에서 상대의 수신 여부를 확인할 수 없는데, 이 점이 신뢰성이 없다는 것을 뜻한다.
*PDU : 데이타그램 (Datagram)
UDP 헤더의 구성
Source Port | 송신 측 호스트의 포트번호 |
Destination Port | 수신 측 호스트의 포트번호 |
Length | UDP 패킷의 옥텟 단위 길이. UDP 헤더와 그 데이터를 호함한 단위길이로, 최소값은 8이며 이는 0 크기의 데이터 필드를 나타낸다 |
UDP Checksum | UDP 헤더를 포함한 세그먼트 전체에 대하여 계산한 값으로, 에러 체크에 사용한다 |
Port | Description |
---|---|
53 | DNS : Domain Name System |
69 | TFTP : Trivial File Transfer Protocol) |
137 | WINS : NetBIOS Name Service |
161 | SNMP : Simple Network Management Protocol |
*TFTP : 가상으로 만든 FTP로, 내부에서의 업로드, 다운로드에 사용되는 프로토콜
TCP : Transmission Control Protocol
연결지향형 프로토콜로, 송신자와 수신자가 서로 통신을 주고 받는다. 신뢰성을 필요로 하는 데이터 전송에 사용되며, 데이터를 송신하면, 이를 수신한 측에서 데이터를 이상 없이 받았다는 확인 맟 응답을 전송한다 (양방향). 일정 시간 내에 확인 응답을 받지 못하면 송신 측에서, 보낸 데이터가 손상 되었거나 유실이 되는 등의 문제가 생겼다고 판단하여 해당 데이터를 재전송 한다.
*PDU : 세그먼트 (Segment)
TCP 헤더의 구성
Source Port | 송신 측 호스트의 포트번호 |
Destination Port | 수신 측 호스트의 포트번호 |
Sequence Number | SYN Flag가 1인 경우 초기 순서 번호를 나타내며, SYN이 0인 경우는 세그먼트의 순서 번호를 나타낸다 |
Ack Number | 수신자에 의해 예상되는 다음 바이트의 순서 번호를 나타내며, TCP 통신 시에는 누적된다 |
Offset | TCP 헤더의 32비트 워드 번호로, TCP 헤더의 시작부터 데이터 이전까지의 길이를 뜻한다 |
Flag(code) | 아래 참조 |
Window | 수신 측이 받을 수 있는 데이터 사이즈를 수신 측에서 송신 측으로 전송하는 값 |
Checksum | TCP 헤더를 포함한 세그먼트 전체에 대하여 계산한 값으로, 에러 체크에 사용한다 |
Urgent Pointer | 긴급히 처리해야 할 필요가 있는 데이터의 마지막 바이트의 위치를 나타낸다 |
Option | 연결이 구성되는 동안 협살할 최데 세그먼트의 크기(MSS) 옵션을 정의 |
TCP Flag
Flag | Description |
---|---|
URG (urgent) | 긴급 포인터가 존재함을 표시. 순서에 관계 없이 먼저 전송되며, 이전의 데이터 처리를 기다리지 않고 대역을 벗어나 데이터를 보내기 위해 사용된다. (Telnet에서 인터럽트형 명령 전송 시 사용) |
ACK (acknowledgement) | 확인 응답 번호가 기술되어 있음을 표시 SYN 세그먼트 전송 이후에는 항상 이 비트가 1로 셋팅 |
PSH (push) | 데이터를 가능한 빨리 응용 계층으로 보내야함을 표시하는 컨트롤 비트로, TCP가 메세지를 버퍼(수신용 메모리)가 찰 때까지 기다리지 안혹, 수신 즉시 버퍼링 된 데이터를 상위계층 프로세스에 즉시 전달할 수 있도록 한다 |
RST (reset) | 연결 재설정 의사를 표시하며, 복구되지 않는 오류로 인해 가상회로를 리셋해야할 때 사용 |
SYN (synchronize) | 연결을 초기화하기 위한 순서번호를 동기화 SYN = 1 ACK = 0 : 연결 요청 SYN = 1 ACK = 1 : 연결 수신 통지 (연결 허락) SYN = 0 ACK = 1 : 연결 설정 (데이터 또는 ACK 패킷) |
FIN (finish) | 연결을 종료하기 위한 컨트롤 비트로, 송신기가 데이터 전송을 종료함 FIN = 1 : 종료 요청 FIN = 1 ACK = 1: 종료 응답 |
Port | Description |
---|---|
21 | FTP |
23 | Telnet |
25 | SMTP |
80 | HTTP |
110 | POP3 |
194 | IRC : Internet Relay Chat |
443 | HTTPS |
1863 | MSN Messanger |
8008 | Alternate HTTP |
8080 | Alternate HTTP |
TCP 3-way hand shake
SYN : 싱크 시퀀스 번호, ACK : 응답
연결지향 프로토콜로서 통신을 시작하기 전에 상대방과 먼저 연결을 만든 뒤 데이터 교환을 시작하는 과정을 말함. TCP는 신뢰성을 가지는 프로토콜이므로, 통신을 시작하기 전에 수신 측이 데이터를 수신할 준비가 되었는 지 확인하는 과정이 필요하다.
- 상대와의 세션 수립
통신 가능하니 ? (SYN : client -> server) - 데이터 전송
통신 가능 / 불가능 (SYN, ACK : server -> client) - 전송이 끝나면 맺었던 연결을 종료
통신 시작하자 (ACK : client -> server)
TCP 4-way hand shake
- 연결 종료하고 싶어 (FIN : client -> server)
- 종료 요청 받았어 (ACK : server -> client)
- 나 이제 작업 끝났어 종료해도 돼 (FIN : server -> client)
- 종료 가능한 것 확인 했어 (ACK : client -> server)