[day18]

 

 

  1. Network

1) 네트워크  :  데이터를 전송할 수 있는 통신망, 전자장비들의 집합, 장비와 장비를 연결한 것.

 

노드 Node : 네트워크에 연결된 모든 장치들

호스트 Host : 노드에게 하나 이상의 서비스를 제공해주는 노드

-> 데이터 주고 받기 위해 존재 (통신)

-> 통신을 하려면 약속이 필요함 : protocol : 데이터 전송 규약

 

유형 : 네트워크 크기와 용도에 따라 LAN, WAN으로 구성

 

LAN Local Area Network : 지역망 ( 작은 망)

통신 주체인 자신과 “동일한” 네트워크간의 통신을 의미하며

작은 범위로 구성된다 -> 스위치

통신장비 : NIC(랜카드), T/P cable, Switch 

통신 프로토콜 : Ethernet < FastEthernet < GigabitEthernet

통신주소 : Mac-address : 물리주소 

 

 

 

WAN Wide Area Network : 큰망

내부 -> 외부로 통신할때 

일반적으로. ISP(kt, sk…..)로 부터 임대회선을 사용하기 때문에 구축비용은 감소하지만 통신 및 유지/보수 비용이 증가

 

자신이 포함되지 않은 “외부” 네트워크 구간을 의미하며, 비교적 큰 범위로 구성된다.

 

대표장비 : Router 라우터

통신프로토콜 : IPv4 (Internet Protocol version4)

통신주소 : IP address : 논리주소

 

 

 

 

 

 

2) IP address : Internet Protocol Address

: 통신을 하는 모든 기계는 네트워크상에서 유일하게 자신을 식별 할 수 있는

“고유주소”를 가지고 있다.

IP 주소는 32비트의 이진수로 구성, 보통 8비트 씩 4부분으로 나누어 십진수로 표현

ex)192.168.100.74

 

숫자로 된 주소는 기억하기 어려우므로 www.naver.com 과 같은 문자열로 구성된

도메인 이름으로 바꿔서 사용한다.

사용자가 도메인 이름으로 페이지를 요청하면,

DNS(Domain Name System) 서버에 의해 숫자로 구성된 IP 주소로 자동 변환.

 

IPv4 : 4개의 숫자로 구성된 32비트의 IP 주소

IPv6 : 128비트로 구성 

 

IP조수 확인 : Cmd - > ipconfig (요약)

ipconfig -all (자세히)

 

3) Port : 데이터를 주고받는 통로, 여러개의 서비스를 해줄 때

서로 충돌이 나지 않도록 포트를 구분해서 만들어 놓음.

포트번호는 개발자가 임의로 선택해 사용할 수 있으나,

기존 응용 프로그램에서 사용하는 번호나 시스템 포트 번호는 피하는 것이 좋다.

잘 알려진 포트번호 : HTTP = 80, FTP = 21, Telnet = 23

기존 잘 알려진 포트는 0 ~ 1023 사이번호를 가지며,

사용자 지정하는 번호는 이 범위를 피해서 선택하도록

 

 

윈도우 cmd > netstat -a

    맥.  sudo lsof -PiTCP -sTCP:LISTEN. https://velog.io/@taelee/%ED%98%84%EC%9E%AC-%EC%97%B4%EB%A0%A4%EC%9E%88%EB%8A%94-%ED%8F%AC%ED%8A%B8-%ED%99%95%EC%9D%B8mac)

 

 

4) Protocol : 통신 규약

컴퓨터간에 정보를 주고받을 때의 통신 방법에 대한 규칙과 약속

대표적인 표준 프로토콜의 예는 인터넷에서 사용하는 TCP/IP가 이에 해당한다.

 

5) 데이터 전송 방식

: IP 프로토콜 위에서 동작 

# 1.  TCP Transmission Control Protocol

연결형 서비스를 제공함. 신뢰성 높음.

ex) download

데이터 전송시 세그먼트 블록단위로 분할해 전송하고,

하나 전송하고 받는쪽에서 잘 받았다는 ACK 신호를 보내면

다음 블록을 전송.

 

# 2. UDP User Datagram Protocol

비연결형 서비스를 제공. 빠른 전송. 신뢰성 떨어짐

ex) streaming service

전송한 데이터가 목적지 까지 제대로 도착했는지 확인하지 않는다.

 

6) OSI 7 계층 : 모든 네트워크 통신에서 생기는 여러가지 충돌 문제를 완화하기 위하여

국제 표준기구(IOS)에서 표준화된 네트워크 구조를 제시한 기본 모델

https://shlee0882.tistory.com/110

 

2. Java.net (더 좋은게 있어서 잘 안쓴다)

InetAddress 클래스

: 자바에서 IP다루기 위한 클래스

URL 클래스

: 자바에서 URL을 다루기 위한 클래스

프로토콜 :  //호스트명:포트번호/경로명/파일명?쿼리스트링# 참조  

 

https://isplus.joins.com/2022/05/27/enter/entertainment/20220527085428908.html : URL

 

포롴토콜 : HTTPS, HTTP     https=443. http =80

ip(호스트명) : 도메인 주소 

포트번호 : 443 생략

경로명 : 접근하려는 자원이 저장된 서바상의 위치 : contect path, 루트 컨텍스트

파일명 : 접근하려는 페이지 이름

쿼리스트링 : ? 뒷부분 ( 데이터 문자형태로 전송 파라미터명 =값&파라미터명 = 값..)

 

URL !=URI

 

 

3.소켓 프로그래밍

: 소켓을 이용한 통신 프로그래밍

소켓 = 통신하는 두 응용 프로그램간의 통신 링크 각 끝단 (endpoint)

TCP/IP 프로토콜을 따르며, TCP/UDP 방식이 있다. 

 

1) TCP 소켓 : 클라이언트( 사용자, 요청자)와 서버(서비스 제공자, 호스트) 간의 1 : 1 통신

통신은 서버가 먼저 클라이언트의 접속을 기다리고, 클라이언트가 서버에 접속을 하면,

그때부터 서로 데이터를 주고 받을 수 있다.

 

 

 

 

 

 

(1) 서버 프로그램에서 포트와 연결된 서버소켓을 사용하여 클라이언트 연결 요청을 처리할 준비함.

(2) 클라이언트 프로그램은 접속할 서버의 IP주소와 포트번호를 가지고 서버소켓을 생성해서 서버에 연결 요청

서버 소켓은 클라이언트 연결을 요청받아, 서버에 새로운 소켓을 만들어 클라이언트 소켓과 연결되도록 한다.

(3) 클라이언트 끼리 서버를 통해 데이터를 주고 받는다.

(4) 연결해제

+ Recent posts