네트워크에 연결된 컴퓨터(호스트)를 식별하기 위한 논리적인 주소
컴퓨터 메모리 저장 최소 단위 (영숫자 기준 1글자)
1 byte 표현 범위
4 byte
- 1 bit : 2진수 1 or 0 표현
- 8 bit : 2진수 8자리, 256가지 표현 가능 (00000000 (0) ~ 11111111 (255))
- 1 byte = 8 bit
8 byte, 16진수 8자리로 표현 (현재는 과도기)
현재는 IPv4와 IPv6가 혼재되어 사용중이지만, 실제로 사용하는 주소는 주로 IPv4
모든 컴퓨터는 LAN (소규모 네트워크) 소속
- A Class : 네트워크 ID 1 byte + 호스트 ID 3 byte
- B Class : 네트워크 ID 2 byte + 호스트 ID 2 byte
- C Class : 네트워크 ID 3 byte + 호스트 ID 1 byte
호스트 ID는 범위 (x.x.x.0 ~ x.x.x.255) 내에서 자유롭게 사용 가능하나, x.x.x.1과 x.x.x.255는 예약된 번호이므로 사용 불가능
공인 IP 주소: 인터넷을 통해 他 네트워크의 컴퓨터 식별가능
사설 IP 주소: 現 네트워크에 연결된 컴퓨터만 식별가능, 인터넷 연결 X 네트워크인 경우 부여
예시)
- 10.0.0.0/8 (A Class)
- 172.16.0.0/12 (B Class)
- 192.168.0.0/16 (C Class)
특수 IP 주소 목록
- 0.0.0.0 : 모든 IP 주소로부터 수신 가능 의미, 실제 유효주소 X
- 127.0.0.1 : loopback, 호스트 자기 자신 의미
- 224.0.0.0 : 멀티캐스트
전통적인 표기법 ( dot(.) 표기법 )
CIDR 표기법
Inbound : NW 외부 -> 내부로 데이터가 전송되는 것 (수신, receive)
Outbound : NW 내부 -> 외부로 데이터가 전송되는 것 (송신, send)
IPv4
CIDR
https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%EB%8D%94_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9)
서브넷
"네트워크 상의 호스트를 식별했으면 해당 호스트의 통신대상 프로그램을 식별해야!"
예약된 포트번호
- 20번, 21번 : FTP ( File Transport Protocol )
- 22번 : SSH ( Secure SHell )
- 80번 : HTTP ( Hyper Text Transport Protocol, 주로 web )
- 443번 : HTTPS ( HTTP Secure )
192.168.0.10:80 -> 192.168.0.10 호스트의 80번 포트에 연결된 프로그램과 통신한다는 의미
(★중요★) 하나의 포트번호에서는 하나의 프로그램만 연결되어 있어아 한다!
인터넷 게이트웨이 ( Internet Gateway ) 라고도 부른다.
인터넷에 연결하기 위해서는 게이트웨이가 반드시 필요
참고: https://ko.wikipedia.org/wiki/%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4
통상 해당 IP 주소 호스트 ID 1번 사용 ( ex: 192.168.0.1 )
네트워크 상에서 호스트 간 주고 받는 데이터 형식
패킷에는 데이터를 송신하는 호스트 IP 주소와 포트번호 및 수신하는 호스트 IP 주소와 포트번호 포함
패킷 전송 테스트 명령어
ex) ping [패킷 전송 테스트 IP 주소]
호스트에 따라 ping test를 거부할 수도 있으니 유의
네트워크를 구성하고 인터넷을 통해 전송하기 위한 패킷을 구성과 전송 또는 수신 위한 과정을,
O/S 내부에 스택 구조로 단계적으로 구성한 네트워크 SW 집합
위키피디아 '인터넷 프로토콜 스위트'
OSI 7 Layer의 경우 권장사항이나, 계층이 많아서 현업에서 잘 쓰이진 않는 관계로 주로 TCP/IP로 대체
Application에서 통신수행시 적용할 프로토콜로 구성
- HTTP : 대표적인 프로토콜, 웹(브라우저) 사용 위한 기본 프로토콜
- SSH : 보안 적용된 원격 shell 접속 목적의 프로토콜
- FTP : 원격파일 전송 목적
- SMTP : 메일 전송 목적
- POP3 : 메일 수신 목적
- 사용자 프로토콜 : 소켓 (socket) 기반, 프로그램 작성 시 직접 설계 및 적용
Port 번호 결정
TCP ( Transmission Control Protocol )
- 1:1 통신 (unicast)
- 패킷전송하고 응답 없을 시 패킷 재전송, 통상 3번의 패킷교환으로 한 패킷전송 완료
- 항상 연결상태를 유지하나 정작 HTTP 프로토콜은 TCP 기반 프로토콜이어도 연결상태를 항상 유지하지는 않음
- 신뢰성 높으나 느림
UDP ( User Datagram Protocol )
- 1:1 / 1:N (broadcast) / M:N (multicast) 통신
- TCP와 달리 패킷전송만 하고 수신확인 X
- 신뢰성 낮으나 빠름
- 예) 스트리밍 서비스
IP 주소 결정
- IP (Internet Protocol) : https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
- ICMP : ping과 연관
오늘 스터디 조장분께서 이게 실제 전공 한학기 분량이라고 하셨다. 나야 비록 전공에서 이걸 배우진 않았어도 CCNA 준비하면서, 또 한때는 네트워크 엔지니어를 지망하면서 배운게 있어서 뭐가 뭔지 알아들었지만 생판 노베이스인 사람이 들으면 많이 힘들겠더라. 그래서 강의 듣는거 자체는 어렵진 않았는데 필기정리할 분량이 너무 많아서 진심 죽는줄 알았다.
또, 한창 네트워크 공부를 할 땐 OSI 7 Layers 위주로 공부를 했었는데 실제 현업에선 TCP/IP 위주로 쓴다는 것을 새롭게 알게 되어 신기했다.