MY MEMO
[NETWORK] NETWORK에 관한 간단한 정의 본문
통신이란? 데이터를 주고 받는 것
네트워킹이란? 컴퓨터를 연결해서 대화를 하게 만들 수 있는 것
Internet이란? 네트워크와 네트워크를 연결하는 것
Protocol이란? 대화를 하기 위한 규칙을 정의
=> protocol이 있음으로 인해
개방형 시스템의 설계가 가능
: 감추는 것이 아니라 활짝 열고 널리 알려서 많은 사람들이 쓰게 함
ex) A사의 Router에서 B사의 Router로 변경해도 link계층의 protocol이 같기 때문에 괜찮음
OSI 7계층 : 프로토콜을 기능별로 나눈 것
Application |
Message |
|
|
|
사용자에게 네트워크 자원에 대한 접근을 제공 |
Presentation |
|
|
|
|
Application layer로 부터 전송 받거나 전달되는 데이터의 인코딩과 디코딩 & 암호화와 복호화 |
Session |
|
|
|
|
모든 통신장비를 연결하고 관리 하며 종료 |
Transportation |
Segment |
port |
TCP |
|
End to End connection and Reliability |
Network |
Datagram |
logical |
IP |
Source to Destination |
Path Determination and IP |
Datalink |
Frame |
physical |
MAC |
hop to hop |
물리적인 네트워크 사이의 데이터 전송을 담당 |
Physical |
Bit |
|
|
|
Media Signal and Binary Transmission |
+)이어달리기는 출발점 부터 바통을 들고 먼저 결승점을 통과해야 하는 경기이다. 여기서 바통은, 첫 주자가 다음주자에게, 그 다음주자는 다다음 주자에게, 이렇게 전달이 된다. 이런식으로 전달이 되는것을 hop- to - hop이라 부른다.
출처: http://kwongyo.tistory.com/7 [오픈소스 읽어주는 남자]
+) 참고 : http://enter.tistory.com/141
+)
Link 계층
- 물리적인 영역의 표준화에 대한 결과 ex) LAN,WAN과 같은 네트워크 표준과 관련된 프로토콜 정의
+) LAN은 Local Area Network의 약자로 사용자가 포함된 지역 네트워크
WAN은 Wide Area Network 의 준말로써 LAN과 LAN 사이 광범위한 지역 단위로 구성하는 네트워크를 의미합니다.
출처: http://ledgku.tistory.com/17 [될성부른떡잎의 음주 프로그래밍]
IP 계층
- 데이터 전송을 위한 경로의 선택 중간에 어떤 경로를 거쳐 가야 하는가.
- IP는 비연결지향적이며 신뢰할 수 없는 프로토콜
- 보내는 경로는 설정하지만 그 경로가 일정하지 않음
- 데이터가 손실되거나 오류가 발생하는 등의 문제가 발생한다고 해서 이를 해결하지 않음
TCP/UDP 계층
- IP계층에서 알려준 경로 정보를 바탕으로 데이터의 실제 송수신을 담당
- TCP는 신뢰성 있는 데이터 전송,데이터를 주고 받음을 확인
Application 계층
- 지금까지 한 내용은 소켓을 생성하면 자동으로 처리
+) Router & Switch
- 외부적으로 수신된 데이터를 호스트에 전달하고 호스트가 전달하는 데이터를 외부로 송신해주는 물리적 장치
- 스위치는 라우터보다 기능적으로 작은 것
- Router : 목적지까지 가는 경로는 IP만을 이용해서 결정 (Network Layer까지)
: 네트워크를 연결
- Switch : MAC을 이용해서 데이터 전송 (DataLink Layer까지)
: 네트워크를 만듬
+) Routing Table
1. Destination을 알면 Next를 알려줌 (다음 Router의 IP주소 알아옴)
2. ARP Table : 자신의 MAC주소 확인, IP header보고 Destination으로 어떻게 가는지 알림
+) IP header
- 내 IP 상대방 Port / 내 port 상대방 IP
내 port는 지정되지 않음 -> 자동
상대방 port는 각자 다름
IP : 네트워크 주소 (Dotted Decimal 로 표현 ex) 128.11.3.31 = 10000000.00001011.00000011.00011111
+) IPv4 : 4byte의 주소
IPv6 : 16byte의 주소
-> IoT 사물인터넷 등 모든 물건에 IP가 필요할 것을 고려
많은 부분에서 인터넷 사용 -> IP부족 사태를 고려
+) 공유기 IP : 192.168.0.1
+) DNS(Domain Name System)
Port : 소켓에 부여되는 번호
well know port
: 0-1023번까지는 특정 프로그램에 할당하기로 예약 일반 프로그래머들은 10000번 이상의 번호를 사용하는 것을 권고합니다.
: 0번 ~ 1023번 : 잘 알려진 포트 ( well-known port )
1024번 ~ 49151번 : 등록된 포트 ( registered port )
49152번 ~ 65535번 : 동적 포트 ( dynamic port )
ex) 20 : FTP
22 : ssh
80 : HTTP
+)
SSH는 서비스들이 보안에 아주 취약한 점을 대체하기 위하여 나온 원격 로그인 프로그램입니다.
일반 로그인 프로그램들이 패킷을 전송할 때 평문으로 전달을 하기 때문에 패스워드를 쉽게 가로챌 수 있는 것에 비해 SSH는 패킷 자체를 암호화 하여 전송
SSH를 통한 모든 데이타는 암호화되며, 트래픽은 압축되어 더 빠른 전송 효율
[출처] SSH란 무엇인가? |작성자 넷매니아
TCP vs UDP
TCP
- 연결지향형 소켓
- 중간에 데이터가 소멸되지 않고 목적지로 전송
- 전송된 순서대로 데이터가 수신
- 전송되는 데이터의 경계가 존재하지 않음
ex) 사탕 1개씩 보냈지만 100개가 차면 100개를 한봉지에 넣음
- 소켓 : 소켓 = 1:1
- 신뢰성
UDP
- 비연결지향형 소켓
- 전송된 순서에 상관없이 가장 빠른 전송 지향
- 전송된 데이터는 손실의 우려 & 파손의 우려
- 전송되는 데이터의 경계가 존재
ex) 택배 2개를 2번에 걸쳐 전송 - 3번은 안됨
- 한번에 전송할 수 있는 데이터의 크기 제한
TCP/IP 프로토콜의 탄생 배경
: 문제를 영역별로 나눠서 해결하자! => 여러개의 protocol! => 계층 구조끼리 상호관계
네트워크 ID vs host ID
subnet mask의 정의 : network ID와 host ID 구분
Default subnet mask 란
A 클래스 255.0.0.0 /8
B 클래스 255.255.0.0 /16
C 클래스 255.255.255.0 /24
(*D,F클래스는 특수용도 IP로 사용됨)
참고로 /8, /16 등 옆에 붙는것을 prefix(프리픽스)라고 부릅니다.
또는 CIDR이라고도 부릅니다
+) 나누어진 subnet끼리는 router를 이용하여 연결
=========================================
ex) CIDR
ex) 172.30.255.255는 할당되지 않는다 -> Broadcasting을 위한 주소
+)
classful => A,B,C 클래스 (/8,/16/24) 디폴트 서브넷을 classful이라고 말하며
classless => 이제할 classful이외의 다른 prefix또는 CIDR를 classless라고한다
+)
또한 서브넷팅한것을 한번더 서브넷팅하는 기술이 있습니다.
이것을 VLSM 이라고하며, 제일큰 호스트 갯수부터 나눕니다.(중요)
- 왜 이렇게 할까? 그냥 네트워크 하나에 다주면 되자안나?
이렇게 생각할수도있다. 이렇게 네트워크를 나누어사용하게되면,
일단 관리자가 원하는만큼만 해당부서에서 네트워크를 사용하게할수있다
(만일 C클래스를 다사용하게했을때 A부서에서 사용하지도않는데
150개를 사용해버리면 다른부서에서 사용할수가 없지안나
그렇기에 네트워크를 분할하여 부서마다 네트워크를 정의해주는것이다
+)
서브넷팅은 10개의 부서에 알맞게 ip를 나누어 주는것이고
슈퍼넷팅은 10개의 부서의 ip를 한번에 통합하는것
출처: http://rcsecurity.tistory.com/6 [리크의보안이야기]
'STUDYING > OS' 카테고리의 다른 글
[SERVER] cafe24 web hosting하기 (1) | 2017.06.30 |
---|---|
[SERVER] ubuntu에 apm설치하기 (0) | 2017.06.08 |
[SERVER] OS 비교 (0) | 2017.04.21 |
[SERVER] web hosting APM 환경 설정 및 apache vs tomcat & php vs jsp (0) | 2017.04.21 |
[NETWORK] Port Forwarding으로 집에서 웹서버 운영하기 (0) | 2017.04.21 |