Daily coding
Java Basic : day 16 - 네트워크 TCP / UDP 본문
TCP: Transmission Control Protocol
Transmission Control Protocol
전송 제어 규약
Server : TCP, DB, Web(tomcat) + Web Socket
종단 시스템: host
네트워크 상에서 더 연장되지 않는 기기 ( Network Edge)
- PC, Smart Phone, PDA, Scanner, Printer
Router : hardware
host 간에 상호 데이터를 교환할 수 있도록 하는 장비
(둘 혹은 그 이상의 네트워크와 네트워크 간 데이터 전송을 위해 최적 경로를 설정해주며
데이터를 해당 경로를 따라 한 통신망에서 다른 통신망으로 통신할 수 있도록 도와주는 인터넷 접속 장비)
inter Network : 포괄적인 통신
TCP - 통신 제어 규약 동기 통신
UDP - User Datagram Protocol 비동기 통신
7 Layer
1계층 - Physical layer 물리 계층
2계층 - Data Link layer 주소를 헤더에 첨부
3계층 - Network layer 네트워크 IP -> Address
4계층 - Transport layer 네트워크 Port
5계층 - Session layer 세션 부분을 동기화
6계층 - Presentation layer 보안, 압축, 확장
7계층 - Application layer 프로그램(소프트웨어)
TCP
- 신사적인 protocol (신뢰할 수 있는 protocol)
(전화) -> 상대방과 연결이 되어야지 통신이 start
- 동기화 -> 보내게 되면 상대방이 받을 준비가 되어있어야 함(처리 순서가 정확하게 일치 해야 함)
서로 보내려고 하면 데드락 (에러)
- 데이터의 경계가 없음 : 데이터 용량에 따른 차등이 없음, 전송 중 오류가 나면 처음부터 다시 전송
- 데이터 전송 후 결과 확인함
- 1:1 통신만 가능
- 채팅(String 전송), Object통신(DTO,class)이 가능
UDP
- 비 연결형 Protocol
- 지상파 방송(안테나)
- 1:1 통신가능 (Unicast)
- 1:m (일대다) 통신 가능 (Broadcast)
- 다대다 통신 가능 (Multicast)
- 데이터의 경계가 있음 : 전송 가능한 용량이 있음
* TCP + UDP 같이 사용 가능
Packet (묶음)
- 제어정보, 데이터 등이 결합된 형태로 전송이 되는 실제 데이터
- IP, Port, String (예시:1001-홍길동-서울시.. -> 보안에선 훌륭하나 (바이트코드를 통해 암호화 가능)
매번 형식으로 데이터를 바꿔줘야함 )
Object(DTO 형태로 바로 전송이 가능) 도 전송이 가능함
* IP : Internet Protocol (주소)
IPv4 : XXX.XXX.XXX.XXX -> 0~255
IPv6 : XXX.XXX.XXX.XXX.XXX.XXX -> 0~255
- 127.0.0.1 --> 자기 자신의 IP
* Port Number :
- IP 주소는 internet에 존재하는 host (Pc/smartPhone) 를 식별할 수 있으나
최종 주체인 프로세스(프로그램)를 식별하지 못하기 때문에
프로세스를 구별하기 위해서 지정된 숫자 ( 0~1024 를 제외한 숫자( 0-1024:시스템 영역의 포트넘버 ) )
- 각 프로세스는 서로 다른 번호로 이루어져 있음
* Socket : Unix로부터 옴 ( 유닉스의 file 통신을 바꾸어 놓은 것이 소켓 )
- 통신의 주체, 통신을 하기 위한 Object
- IP주소, TCP / UDP 규약을 가지고 있음
- 클라이언트는 보통 1개의 소켓, 서버는 소켓이 많음 ( 여러 개의 클라이언트와 연결할 수 있음 )
** network State 확인 : cmd에서 netstat -a -n 입력
통신순서 :
Server Client
1. socket 버전 확인 1. socket 버전 확인
2. Binding(IP, Port설정/확인)
3. Listening(대기상태)
4. Accept <------------------------- 2. Connect
(클라이언트 정보파악:IP,Port) (클라이언트가 연결요청할때까지 서버는 대기하다가 요청들어오면 받아줌)
< 접속 성공 >
1) recv(read) <------------ 1) send(write) : 요청 보내기
2) send(write) <------------- 2) recv(read) : 요청사항 받기
DNS Server(Domain Name System Server) : 도메인은
- IP ----> 문자열(String)로 바꿔주는 작업을 처리함
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 17 - Thread의 개념과 예제 (0) | 2019.12.11 |
---|---|
Java Basic : day 16 - 서버 / 클라이언트 연결하기 (0) | 2019.12.09 |
Java Basic : day 15 - AWT & SWING : Example - 선수 데이터 관리 프로그램 만들기 (0) | 2019.12.08 |
Java Basic : day 14 - AWT & SWING : Example 3 : 숫자맞추기 게임 (0) | 2019.12.08 |
Java Basic : day 14 - AWT & SWING : Example 2 : 가위바위보 만들기 (0) | 2019.12.08 |