네트워크

Minki CHO·2023년 2월 7일
0

CodeStates

목록 보기
43/43

애플리케이션

네이티브 애프리케이션

:특정기기에 설치해서 사용하는 애플리케이션
:특정 실행환경에 종속됨

장점
:웹애플리케이션보다 빠름
:애플리케이션이 설치된 기기의 시스템/기기틔 리소스에 접근이 용이함(GPS, 카메라 등)
:인터넷 없이 사용 가능
:웹애플리케이션에 비해 안전함(모바일의 경우 앱스토어 승인 필요)

단점
:웹애플리케이션에 비해 개발비가 더 소요됨(아이폰과 안드로이드 간의 멀티 플랫폼 개발 등)
:빠른 업데이트 힘듦
:앱스토어에 승인받기 힘들고 비용 발생

웹애플리케이션

:웹 브라우저를 통해 접근이 가능한 어플리케이션
:정적인 웹사이트의 한계를 벗어나 다양한 동적인 응답을 웹 브라우저라는 소프트웨어를 통해 가능하게 한 애플리케이션

장점
:브라우저를 통해 실행되기 때문에 설치나 다운로드가 필요없음
:업데이트 등의 유지 관리가 쉬움
:네이티브 애플리케이션에 비해 만들기가 비교적 간편
:애플리케이션 스토어 승인 필요없음

단점
:인터넷 없으면 사용 안됨
:네이티브 애플리케이션에 비해 속도 느림
:애플리케이션 스토어에서 관리되지 않아 사용자 접근성 떨어짐
:질적으로나 보안상 위험에 노출되기 쉬움

TCP/IP

LAN

일반적으로 컴퓨터는 인터넷 제공업체에서 제공한 인터넷 라우터를 통해 연결됨
유선/무선 인터넷 모두 라우터에 연결되어 있지 않다면 인터넷 사용 불가함

이러한 좁은 범위에서 연결된 네트워크를 LAN(Local Area Network)라고 부름
NAN을 연결하는 선 : LAN 케이블

WAN

수많은 LAN들이 모여 세계의 네트워크를 구성하는 WAN(Wide Area Network)

인터네트워킹 internetworking

네트워크를 확장하는 방법
1 한 네트워크를 확장하는 방법
2 네트워크와 네트워크를 연결하는 방법 = 인터네트워킹

특징
:그 네트워크의 일부에서 고장이 나도 영향이 광범위하게 퍼지지 않음
:불필요한 통신이 네트워크 전체로 확산하지 않음
:개별 네트워크를 각각의 방침에 따라 관리가 가능함

전세계적으로 인터네트워킹하는 것 = 인터넷 The Internet

프로토콜 protocol

인터넷에 연결되어 있는 멀리 떨어진 컴퓨터끼리 소통하려면 약속이 필요함
이 공통된 약속 = 프로토콜

TCP/IP 프로토콜 : 지금 주로 사용하는 약속

TCP/IP

인터넷 통신 스위트 Internet Protocol Suite
:인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약의 모음
:다른 컴퓨터나 다른 운영체제, 다른 회선간의 통신이 가능하게 해줌

TCP/IP 4계층 모델

주소 address

IP address/ Internet Protocol address/ IP 주소
:네트워크에 연결된 특정 PC 주소를 나타내는 체계

IP 주소

:TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용되는 주소
:컴퓨터나 휴대전화, 서버, 인터넷 라우터 등 네트워크 장비에 각각의 IP 주소가 할당

IP 주소
1 private 주소
:NAN 네트워크 내부에서 사용되는 것
2 public 주소
:인터넷에서 사용되는 것

인터넷에 연결된 모든 PC는 IP 주소체계에 따라 네 덩이의 숫자로 구분됨
네 덩이의 숫자로 구분된 IP 주소체계 = IPv4

localhost, 127.0.0.1 : 현재 사용중인 로컬 PC

MAC 주소

IP 주소만 가지고 네트워크 상에서 송수신 가능하지 않음
각 네트워크 기기는 처음부터 제조사에서 할당하는 고유 시리얼인 MAC 주소를 IP주소와 조합해야 네트워크를 통한 통신이 가능

이더넷에서는 네트워크상의 송수신 상대를 특정하고자 MAC 주소를 사용하고, TCP/IP 에서는 IP address를 사용하기 때문

같은 LAN에 속한 기기끼리 통신할 때
:우선 상대방의 MAC 주소를 파악하는 과정이 필요
:이때 파악하기 위해 사용하는 것 ARP(address resolution protocol)
:MAC 주소를 파악하기 위해 네트워크 전체에 브로드캐스트를 통해 패킷을 보냄
:해당 IP를 가지고 있는 컴퓨터 주소가 자신의 MAC 주소를 Response함 = 통신할 수 있음

패킷

IP

IP 주소 구조

IPv4 주소 형식 : xxx.xxx.xxx.xxx

IP주소는 네트워크부, 호스트부로 나뉨
네트워크부 : 어떤 네트워크인지 알 수 있음
호스트부 :그 네트워크 안의 특정 정보를 지칭하는 정보

서브넷 마스크: IPv4 주소에서 네트워크부가 어디까지인지 나타내는 것

ex.
-IP 주소: 192.168.1.1
-서브넷 마스크: 255.255.255.0
-네트워크 주소: 192.168.1.0
-브로드캐스트 주소: 192.168.1.255

IP주소 할당 및 관리


:호스트부를 변경해가면서 IP 할당 이루어짐

IP프로토콜의 한계

한계
1 비연결성
패킷을 받을 대상이 없거나 특정한 이유로 서비스 불능 상태일때도 데이터를 받을 상대의 상태 파악이 불가하여 패킷을 그대로 전송함
2 비신뢰성

중간에 패킷이 사라지더라도 보내는 기기에서는 알 수 없음
서로 다른 노드를 거쳐서 전송되는 특성상, 보내는 기기에서 의도한 순서대로 데이터가 도착하지 않을 수 있음

TCP, UDP

TCP와 UDP 특징

:데이터의 신뢰성이 필요한 애플리케이션 = TCP
:빠른 속도나 실시간 통신이 중요한 애플리케이션 = UDP

TCP 3-way handshake

-Step 1 (SYN): 처음으로, sender는 receiver와 연결 설정을 위해, segment를 랜덤으로 설정된 SYN(Synchronize Sequence Number)와 함께 보냅니다. 이 요청은 receiver에게 sender가 통신을 시작하고 싶다고 알립니다.

-Step 2(SYN / ACK): receiver 는 받은 요청을 바탕으로 SYN/ACK 신호 세트를 응답합니다. Acknowledgement(ACK) 응답으로 보내는 segment가 유효한 SYN요청을 받았는지를 의미합니다.

-Step 3(ACK): 마지막 단계에서, sender는 받은 ACK를 receiver에게 전송을 하면서, 신뢰성 있는 연결이 성립되었다는 사실을 sender와 receiver 양쪽에서 알 수 있고, 실제 데이터 전송이 시작되게 됩니다.

UDP

-애플리케이션의 정교한 제어가 가능하다: TCP의 경우 receiver가 전송 받을 준비가 될 때까지 세그먼트를 반복적으로 재전송합니다. 실시간 전송에 대한 요구가 큰 애플리케이션 들은 높은 latency를 지양하므로 약간의 데이터 손실을 감수합니다. 대신 개발자 스스로가 이를 보완하기 위해 애플리케이션에 추가 기능을 구현할 수 있습니다.

-연결설정에 무관하다.: TCP 3-way handshake 가 없는 udp는 예비과정 없이 바로 전송을 시작합니다. 설정단계에서 발생하는 지연이 없는 만큼, 반응속도가 빠릅니다. 또한, TCP 가 신뢰성을 위해 많은 파라미터와 정보 전달이 필요함과 비교해 UDP는 연결설정 관리를 하지 않기 때문에 어떠한 파라미터도 기록하지 않습니다. 이때문에 서버에서도 TCP와 비교에 더 많은 클라이언트를 수용이 가능합니다.

이러한 이유로 많은 애플리케이션 개발자가 UDP 사용함

PORT

TCP와 UDP 모두 포트번호를 사용

(IP프로토콜만 가지고는
한 IP에서 여러 애플리케이션이 동작할 때 특정 애플리케이션을 특정해 통신할 수 없음<노이해중>)

포트번호
:대상 IP 기기의 특정 어플리케이션connnection endpoint을 특정하는 번호

ex.

:한 서버 인스턴스에서 웹 서버와 메일 서버 두개를 동시에 실행 중
:IP 주소만으로는 어느 서버로 요청을 보내는지 알 수 없음
:이럴때 포트번호를 사용해 receiver를 특정하여 어느 서버로 보내는 요청인지 특정할 수 있음

ex.
로컬 환경에서 Spring을 실행하면 나타나는 화면에는, Tomcat started on port(s): 8080과 같은 숫자가 표현됩니다. 이 숫자는 IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미합니다. 로컬에서 실행했을때에는 로컬 PC의 IP 주소 127.0.0.1 로 접근하여, 8080번이 통로를 통해 실행중인 서버를 확인할 수 있습니다. 이미 사용중인 포트는 중복해서 사용할 수 없습니다.

자주 사용되는 Well-known port


:8080 = 임시 포트

(
127.0.0.1
:특수한 IP 주소인 127.0.0.1은 애플리케이션을 로컬 컴퓨터를 통해 테스트하기 위해 자주 사용됩니다. 자신이 가지고 있는 컴퓨터를 마치 제3자가 되어 원격으로 조작하는 방식으로 활용할 수 있습니다.
:127.0.0.1 주소는 localhost 또는 루프백(loopback) 주소라고도 부릅니다. 모든 컴퓨터는 127.0.0.1을 로컬호스트의 주소로 사용할 수 있습니다. 그러나 실제 IP 주소처럼 다른 컴퓨터와 이 주소로 통신할 수는 없습니다.
)

profile
Developer

0개의 댓글