1. Introduction
Netwaht은 네트워크에 대해 알게 되고 그것이 내부에서 작동하는 일들에 대해 배울 수 있게 해줄 것입니다. 이것은 여러분이 이미 생활 속에서 사용하고 있는 어떠한 것들이 어떻게 동작하는지 이해할 수 있도록 해줄 것입니다.
2. General instructions
Netwhat은 다중 선택 프로젝트입니다. 이 프로젝트는 여러분의 네트워크 지식을 평가할 것입니다. 인터넷에서 네트워크 강의들을 읽는 것으로 시작 할 수 있습니다. 그 이후에 지식을 테스트하기위한 온라인시험을 볼 수 있습니다. 일단 시험을 통과할 준비가 되었고, 공부를 끝마쳤다면 : netwhat.42.fr에 접속하세요.
3. Mandatory part
◦ What is an IP address
IP : Internet Protocol
IP 주소의 클래스 네트워크(lan/vlan)의 규모에 따라 결정된다.
◦ What is a Netmask(Subnetmask)
네트워크 주소 부분의 비트를 1로 치환한 것이 넷마스크이다.
IP 주소와 넷마스크를 AND연산을 하면 네트워크 주소를 얻을수 있다.
◦ What is the subnet of an IP with Netmask
Subnet
한개의 네트워크를 여러개의 서브넷으로 분할 하는것
서브넷팅 하는 경우에는 네트워크 주소 부분의 비트를 연장한다.
그리고 그 나머지 호스트 부분이 호스트 식별자가 된다.
◦ What is the broadcast address of a subnet
총 256개의 호스트를 가지는 네트워크에서 256개 모두 IP주소로 사용할 수 있는것은 아니다. 각 네트워크에서 2개는 네트워크주소와 브로드캐스트(전체통신) 주소가 되고 실제 사용가능한 IP주소는 254개가 된다. 네트워크주소는 보통 최하위값이 할당되며, 브로드캐스트는 보통 최상위 값이 할당된다.
(네트워크 주소 : 192.168.5.0 / 브로드캐스트 : 192.168.5.255)
◦ What are the differences between public and private IPs
Public IP
인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.
- 공인 IP는 전세계에서 유일한 IP 주소를 갖는다.
- 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터의 접근이 가능하다. 따라서 공인 IP 주소를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치할 필요가 있다.
Private IP
일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소이며, 로컬 IP, 가상 IP라고도 한다. IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.
공인 IP (Public IP) | 사설 IP (Private IP) | |
할당 주체 | ISP(인터넷 서비스 공급자) | 라우터(공유기) |
할당 대상 | 개인 또는 회사의 서버(라우터) | 개인 또는 회사의 기기 |
고유성 | 인터넷 상에서 유일한 주소 | 하나의 네트워크 안에서 유일 |
공개 여부 | 내/외부 접근 가능. | 외부 접근 불가능 |
사설 IP 주소만으로는 인터넷에 직접 연결할 수 없다. 라우터를 통해 1개의 공인(Public) IP만 할당하고, 라우터에 연결된 개인 PC는 사설(Private) IP를 각각 할당 받아 인터넷에 접속할 수 있게 된다.
◦ What is a class of IP addresses
Classful IPv4
- Class A : 1번째 Octet은 Network Part, 나머지 3개의 Octet은 Subnet / Host로 활용
- Class B : 1, 2번째 Octet은 Network Part, 나머지 2개의 Octet은 Subnet / Host로 활용
- Class C : 1, 2, 3번째 Octet은 Network Part, 나머지 1개의 Octet은 Subnet / Host로 활용
- Class D : Multicasting을 위한 IP
- Class E : 특정하게 목적이 정해져 있는 활동을 위한 IP
A : 0 ~ 127(0.0.0.0 ~ 127.255.255.255)
B : 128 ~ 191 (128.0.0.0 ~ 191.255.255.255)
C : 192 ~ 223 (192.0.0.0 ~ 223.255.255.255)
D : 224 ~ 239 (224.0.0.0 ~ 239.255.255.255)
E : 240 ~ 255 (240.0.0.0 ~ 255.255.255.255)
◦ What is TCP
인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다.
TCP는 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜로 예를 들면 파일 전송과 같은 경우에 사용한다
TCP
연결 지향형 프로토콜, 신뢰성 있는 통신이 가능하게 해준다. 계속해서 물어보고 대답하는 과정을 통해서 신뢰성을 보장하고 서버와 클라이언트 사이의 통신을 동기화
TCP 프로토콜 구조
Seq 번호 : TCP 패킷의 순서 번호
Ack 번호 : Seq 번호에 대한 응답 번호
오프셋 : 헤더의 길이, IP 헤더의 길이와 성격이 비슷, 최대 15, Offset * 4 = 실제 헤더의 크기
Reserved : 예약된 필드로써 사용하지 않는 곳
TCP Flags : 현재 패킷의 종류를 표시
URG : 긴급 bit, 우선순위가 높은 데이터를 포함한 패킷
ACK : 승인 bit, 승인의 뜻을 포함한 패킷
PSH : 밀어넣기 bit, TCP Buffer가 일정한 크기만큼 쌓여야 패킷을 추가 전송하는데 이를 생략하고 계속 데이터를 전송하게 함
RST : 초기화 bit, 데이터를 주고받는 거에 문제가 발생했으니 서로의 연결을 초기화하겠다는 패킷
SYN : 동기화 bit, Seq 번호를 동기화하고 연결 수립을 요청한다는 패킷
FIN : 종료 bit, 서버와 클라이언트가 연결을 종료하겠다는 패킷
Window : 남은 버퍼의 크기를 상대방에게 미리 알려주는 기능
체크썸 : 헤더의 오류를 확인하기 위한 값
Urgent Pointer: 어디가 긴급 데이터인지를 가리키는 곳
◦ What is UDP
UDP 프로토콜
비연결 지향형, 연결 지향형보다 속도가 빠르지만, 신뢰성이 떨어진다.
UDP 프로토콜의 구조
출발지 포트 : UDP 프로토콜을 만드는 송신자의 포트번호
목적지 포트 : UDP 프로토콜을 받는 수신자의 포트번호
길이 : UDP 헤더와 데이터를 포함한 전체 길이를 바이트 단위로 표시
체크썸 : 데이터가 전송 중에 손상되지 않았는지 확인할 수 있는 값
◦ What are the network layers
TCP/IP 모델과 OSI 7 layers 모델
공통점
계층적 네트워크 모델
계층간 역할 정의
차이점
계층의 수 차이
OSI는 역할 기반 TCP/IP는 프로토콜 기반
OSI는 통신 전반에 대한 표준
TCP/IP는 데이터 전송 기술 특화
◦ What is the OSI model
통신에 관한 국제적인 표준기구인 ISO ( International Organization for Standardization )라는 곳에서 통신이 일어나는 과정을 7개의 단계로 나누어 놓은것.
송신호스트가 데이터를 보낼 때 각 계층을 지나면서 헤더가 붙어 패킷의 크기가 커지고 수신호스트에 도착하면 아래에서 위에있는 계층으로 올라가며 디캡슐화 과정에 의해 헤더가 벗겨진다.
ㆍ Application Layer ( 응용 계층 )
ㆍ Presentation Layer ( 표현 계층 )
ㆍ Session Layer ( 세션 계층 )
ㆍ Transport Layer ( 전송 계층 )
ㆍ Network Layer ( 네트워크 계층 )
ㆍ Data Link Layer ( 데이터 링크 계층 )
ㆍ Physical Layer ( 물리 계층 )
패킷의 형태
여러 프로토콜들로 캡슐화 된 패킷
헤더 | 페이로드 | 풋터 |
캡슐화 (encapsulation)
계속 해서 패킷을 붙히는 과정을 캡슐화 (encapsulation)
누군가에게 패킷을 보낼때 사용
하위 프로토콜 앞에 상위 프로토콜을 헤더로 붙힐 수 없음
디캡슐화 (decapsulation)
계속 헤더를 벗겨내면서 여러프로토콜을 이용해서 받을때 사용
◦ What is a DHCP server and the DHCP protocol
DHCP란 Dynamic Host Configuration Protocol의 약자로 컴퓨터가 인터넷을 하기 위해서 필요한 IP 및 네트워크 정보들을 할당해 주는 프로토콜.
IP 이외에 Subnet Mask, Gateway, DNS 1st, DNS 2nd을 추가적으로 할당한다.
◦ What is a DNS server and the DNS protocol
Domain Name System
ICMP (Internet Control Message Protocol) 프로토콜 3계층
특정대상과 내가 통신이 잘되는지 확인하는 프로토콜
---
4. 참고 자료
ko.wikipedia.org/wiki/TCP/UDP%EC%9D%98_%ED%8F%AC%ED%8A%B8_%EB%AA%A9%EB%A1%9D
TCP/UDP의 포트 목록 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 알려진 포트(well-known port)는 특정한 쓰임새를 위해서 IANA에서 할당한 TCP 및 UDP 포트 번호의 일부이다. 일반적으로 포트 번호는
ko.wikipedia.org
CIDR.xyz
CIDR.xyzAn interactive IP address and CIDR range visualizer CIDR is a notation for describing blocks of IP addresses and is used heavily in various networking configurations. IP addresses contain 4 octets, each consisting of 8 bits giving values between 0
cidr.xyz
www.coursera.org/learn/computer-networking/lecture/7WFyg/course-introduction)
Course Introduction - Introduction to Networking | Coursera
Video created by Google for the course "The Bits and Bytes of Computer Networking". Welcome to the Networking course of the IT Support Professional Certificate! In the first week of this course, we will cover the basics of computer networking. We ...
www.coursera.org
WEB2 - Home server - 생활코딩
수업소개 이 수업은 자신의 집에서 서버를 운영하는 방법을 알려드리는 수업입니다. 가정에서는 보통 공유기를 이용해서 인터넷을 이용하는 경우가 많습니다. 이런 환경에서 서버를 운영하기
opentutorials.org
'42Seoul' 카테고리의 다른 글
[42Seoul] Philosophers : 뮤텍스와 세마포어 (0) | 2021.08.14 |
---|---|
[42 Seoul] Minitalk : signal 함수로 IPC(Inter-Process Communication) 구현 (0) | 2021.07.02 |
[42Seoul] Push_Swap : 정렬 알고리즘 구현 (0) | 2021.06.16 |
[42Seoul] ft_server (Docker + LEMP) (0) | 2021.03.01 |
[42Seoul] ft_printf - 나의 printf 구현하기 (0) | 2021.02.06 |