TCP/IP
- 인터넷을 사용하는 모든 통신의 기본 프토토콜
- 여러 가지 프로토콜의 조합
- TCP/IP를 기반으로 BAN, PAN, LAN, MAN, WAN 구간의 장치들이 데이터를 주고 받음
- 4개의 계층
- TCP: 서비스, IP: 주소
- 수 많은 프로토콜들이 IP주소를 기반으로 동작
TCP/UDP(통신 규약) → Data 전송 방식
- TCP 방식 80번 포트 → http(요즘엔 UDP 쓰는 듯)
- TCP 방식 443번 포트 → https
- TCP/UDP 53번 포트 → DNS

Default Gateway : 본인과 가장 가까운 라우터(다른 네트워크 대역으로 데이터를 전송해주는)의 주소
DNS : Domain Name Service
→ 도메인을 입력하면 연결된 주소로 이동한다
DNS Server : 도메인 주소 질의 응답하는 서버
해당 도메인에 대한 IP가 없으면 DNS 질의 응답을 먼저 함(53번 포트) → 이후 도메인 학습이 되면 80번 포트를 사용하는 http 프로토콜을 활용하여 웹사이트 접속
네트워크 접속 계층
-
OSI 참조 모델의 물리 계층 + 데이터 링크 계층(MAC주소) 역할 수행
-
ARP: 목적지의 MAC주소를 모를 때 알아내기 위해 사용하는 프로토콜
-
RARP: 목적지의 IP주소를 모를 때 알아내기 위해 사용하는 프로토콜
-
NIC, 스위치, 스위치 허브(스위치와 달리 MAC-TABLE 저장 X, 거의 안 쓰임 요즘)는 네트워크 접속 계층 대표 장치
-
패킷을 프레임화 한다.(패킷에 집중X)
-
ARP는 Broadcast, ARP의 대한 응답은 Unicast 수행(1:1 통신)
인터넷 계층
IP : 컴퓨터네트워크 장치를 나타내는 수단, v4(32bit), v6(128bit) 존재
IMCP : Echo Request + Echo Reply = Ping
- 인터넷 제어 메시지 프로토콜, 장치 간 통신 가능 여부 확인 시 사용
전송 계층
- 종단 간의 통신이 완성되는 계층 TCP, UDP가 대표적이며 포트 번호를 사용해 통신
- TCP는 신뢰성 있는 통신 제공 / UDP는 TCP에 비해 신뢰성 있는 통신 제공하진 않지만 통신 데이터 처리 속도가 빠르다.
- UDP를 이용해 신뢰성 있는 통신을 할 경우 다른 프로토콜을 함께 사용하여 신뢰성 제공
- TCP/UDP는 RFC 1700문서에서 제공 중
- Well-Known 포트란 대부분의 시스템 간 널리 이용되는 애플리케이션의 기본 값으로 설정되어 있는 포트 번호를 말한다. ex) 80, 443 번 등

응용 계층
- TCP 신뢰성 통신
- ACK 3. SACH 5-10 요청
- 3부터 Windows size만큼 받는데 5-10까지만 도착함
- 즉, 3,4,11,12 segment를 다시 보내줌
Windows size : 이 사이즈에 크기에 맞춰 Segment를 받는다.(ex. 10이면 10개를 받고 응답받고 반복)

TCP 헤더
- 연결 지향형 서비스 제공,신뢰성 있는 데이터 전송 보장

- 출발지 포트번호, 도착지 포트번호, 순서 번호, 수신 확인 응답 번호, 헤더 길이, 예약 번호, URG, ACK, PUSH, RST, SYN, FIN, 윈도우 크기(Window size), TCP Checksum, 긴급 포인터, 옵션
UDP 헤더
- 전송 계층에서 동작+ 포트번호 기반 통신(=TCP)
- Well-Known Port 기반 통신

- 출발지 포트번호, 도착지 포트번호, 길이, Checksum
TCP와 차이점
- 수신 확인 응답X
- 데이터 흐름 제어 기능 수행X
- 송수신 장치 간 비연결형 서비스(데이터 간 전후 관계 고려X) 지원
=> 송수신 절차가 간단하고, 오류 제어 기능 제공으로 소량 데이터 전송 및 실시간 데이터 전송에 효과적
IP 헤더
- OSI 7 Layer 3계층(네트워크 계층)에서 패킷을 출발지에서 목적지까지 전달하는데 사용
- 최선형 서비스 기반으로 패킷 전달, 패킷 도착 보증X -> 손실, 손상 가능성
- TCP 같은 신뢰성 프로토콜 사용 -> 최선형 서비스 단점 보완
- 도착한 패킷의 순서가 순차적X
- v4의 부족으로 v6가 대안 -> 현재 동시 사용 중
- IP는 비 신뢰성, 데이터 흐름 관여X

- IP 헤더 목록: 버전, 헤더 길이, TOS, 전체 길이, ECN, 식별자, 플래그, 분할 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 도착지 IP 주소, 옵션
IPv4 주소
- 32bit 표현, 4개의 옥텟(8bit)으로 구분
- 하나의 옥텟에 0~255까지 표현
사설 IP : 네트워크 관리자가 임의 할당 가능, ISP에서 할당 받지 않은 주소
공인 IP : 딱 1개, ISP에서 할당 받은 주소, 내가 속하지 않은 다른 네트워크의 장치와 통신하기 위해 반드시 사용
- IP주소 = Network 부분 + Host 부분
- IP주소는 IP주소/서브넷 마스크 형태로 표시된다
서브넷 마스크
: IP주소를 Network, Host 부분으로 구분해줌
A Class(0.0.0.0~127.255.255.255)
- 8비트 서브넷 마스크(255.0.0.0)
- 0,127은 할당되어 있어 사용X
- 10.0.0.0 ~ 10.255.255.255 범위는 사설IP 대역
B Class(128.0.0.0~191.255.255.255)
- 기본 서브넷 마스크 16bit(255.255.0.0)
- 172.16.0.0 ~ 172.31.255.255의 범위는 사설 IP 대역
C Class(192.0.0.0~223.255.255.255)
- 기본 서브넷 마스크 24bit(255.255.255.0)
- 192.168.0.0~192.168.255.255의 범위는 사설 IP 대역
D Class(224.0.0.0~239.255.255.255)
E Class(240.0.0.0~255.255.255.255)
IPv4 주소 분류
- Host Field를 모두 0으로 채우면 Network ID, 모두 1로 채우면 Broadcast 주소
ex) IP 주소가 192.168.10.1/24일 경우
Network ID: 192.168.10.0
Broadcast : 192.168.10.255
=> 사용 가능 대역: 192.168.10.1 ~ 192.168.10.254

서브넷팅
서브넷팅을 하는 이유
- IP 주소의 효율적 배분
- A,B,C 클래스의 Default Subnet 사용X, 토폴로지에 따라 적절하게 IP 배분
서브넷팅 계산법
- 라우터를 기준으로 나눈다
- 2^n >= 장치 할당IP 개수 + 2(네트워크+브로드캐스트 주소)
- N값에 따라 서브넷 주소 비트 결정(N=3, 서브넷 주소=29비트)

VLSM : 서브넷이 완료된 주소를 다시 서브넷 하는 것

- 가장 많이 필요로 하는 부분을 먼저 찾음
- 26개가 필요하므로 27비트로 서브넷팅(0~31 / 32~63 ...)
- 4개가 필요한 부분을 30비트로 서브넷팅 하면된다. ( 64~67 )