๋ฐ˜์‘ํ˜•

TCP vs UDP ํ”„๋กœํ† ์ฝœ ๊ฐœ์š”

๋ณดํ†ต GigE(Gigabit Ethernet) Vision ์นด๋ฉ”๋ผ๋Š” UDP(User Datagram Protocol) ์ „์†ก ๊ณ„์ธต ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. UDP๋Š” TCP๋ณด๋‹ค ์šฐ์ˆ˜ํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ ์„ฑ๋Šฅ๊ณผ ์งง์€ ๋Œ€๊ธฐ์‹œ๊ฐ„, ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ๋ฐ ์ „๋ฐ˜์ ์œผ๋กœ ๋‹จ์ˆœํ•œ ๋””์ž์ธ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . UDP์— ๋Œ€ํ•œ ํŠน์ง•์„ ์กฐ๊ธˆ ์•Œ์•„๋ณด์ž๋ฉด, UDP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์†ก์ˆ˜์‹  ์žฅ์น˜ ๊ฐ„์— ํ•ธ๋“œ์‰์ดํฌ(handshake)๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋น„์—ฐ๊ฒฐํ˜•(connectionless) ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ๋ฆ„ ์ œ์–ด(flow control) ๋˜๋Š” ํŒจํ‚ท ์•ˆ์ •์„ฑ(packet reliability)์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ „์†ก์— ๋Œ€ํ•œ ๋ณด๋‹ค 'hands-off' ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐํ˜•์ด๋ž€ ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จ๋œ ์„ค์ •๊ณผ ์ข…๋ฃŒ๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒƒ์ด๊ณ , ๋น„์—ฐ๊ฒฐํ˜•์€ ๊ทธ๋Ÿฌํ•œ ์ž‘์—…์ด ํ•„์š” ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— TCP๋Š” client-to-host ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ(connection-oriented) ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. UDP์™€ ๋‹ค๋ฅด๊ฒŒ ํ๋ฆ„ ์ œ์–ด, ํŒจํ‚ท ์žฌ์ „์†ก ๋ฐ ํŒจํ‚ท ๋ณ‘ํ•ฉ(packet coalescing)๊ณผ ๊ฐ™์€ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ UDP๋Š” TCP์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์—†์ด ์†๋„์™€ ๋‹จ์ˆœ์„ฑ์— ์ค‘์ ์„ ๋‘๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ณ , TCP๋Š” ์ „์†ก ์‹ ๋ขฐ์„ฑ์— ๋” ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ํ†ต์‹  ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ฐจ์ด์ ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  TCP UDP
์„ค๊ณ„ ์—ฐ๊ฒฐํ˜• ๋น„์—ฐ๊ฒฐํ˜•
Handshake SYN, SYN-ACK, ACK ์—†์Œ(PC๋Š” ๋™์ผํ•œ ์„œ๋ธŒ๋„ท์˜ ์นด๋ฉ”๋ผ์— ๊ฒ€์ƒ‰ ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค)
ํ”„๋ ˆ์ž„ ์ „๋‹ฌ ๋ณด์žฅ Yes No
์ „์†ก ๋ฐฉ์‹ Stream-oriented Datagram
๋ฐ์ดํ„ฐ ์žฌ์ „์†ก Yes(ํ•˜๋“œ์›จ์–ด ๊ณ„์ธต) Optional(ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„)
ํ๋ฆ„ ์ œ์–ด Yes(ํ•˜๋“œ์›จ์–ด ๊ณ„์ธต) Optional(Inter packet delay)
์ ๋ณด ํ”„๋ ˆ์ž„ Yes Yes
๋ฉ€ํ‹ฐ์บ์ŠคํŠธ No Yes

GigE Vision ํ‘œ์ค€์— UDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

GigE Vision ํ‘œ์ค€์ด ์ฒ˜์Œ ์žฌ์ •๋˜์—ˆ์„ ๋•Œ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ๋Š” ํšจ์œจ์ ์ธ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹จ์ˆœ์„ฑ ๋•Œ๋ฌธ์— UDP ํ”„๋กœํ† ์ฝœ์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. UDP๋Š” ํ‘œ์ค€์œผ๋กœ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๊ณ , ๋ˆ„๋ฝ๋œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์€ UDP ์œ„์— ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค(์†Œํ”„ํŠธ์›จ์–ด, ์นด๋ฉ”๋ผ ํŽŒ์›จ์–ด ๋ฐ ํ˜ธ์ŠคํŠธ PC์˜ CPU ๋ฆฌ์†Œ์Šค ํ™œ์šฉ).

์ด๋Ÿฌํ•œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์€ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ์˜ ์„ ํƒ ์‚ฌํ•ญ์ด๊ธฐ๋„ ํ•˜๋ฏ€๋กœ, ์ œ์กฐ์‚ฌ๊ฐ€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ํฌ๊ธฐํ•˜๊ธฐ๋กœ ์„ ํƒํ•œ ๊ฒฝ์šฐ ํ›จ์”ฌ ๋” ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค. GigE Vision ํ‘œ์ค€์€ ์ด๋”๋„ท ์žฅ์น˜๊ฐ€ device control, stream, discovery, feature list ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ •์˜ํ•˜์—ฌ UDP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • GigE Vision Control Protocol(GVCP)
    GigE Vision ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žฅ์น˜์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • GigE Vision Stream Protocol (GVSP)
    ์„ ํƒ์  ํŒจํ‚ท ์žฌ์ „์†ก ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ์นด๋ฉ”๋ผ์—์„œ PC๋กœ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์ „์†ก ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • Device Discovery Mechanism
    GigE ์žฅ์น˜ ํƒ์ƒ‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋„คํŠธ์›Œํฌ์—์„œ ์žฅ์น˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • GenAPI
    XML ํŒŒ์ผ์—๋Š” ๋ชจ๋“  ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” GenAPI ์„ค๋ช…(description)์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค๋ช…์€ GenICam ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋น„ํ•ด TCP๋Š” ์นด๋ฉ”๋ผ์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋” ๋ณต์žกํ•œ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ ํŒจํ‚ท ์žฌ์ „์†ก๊ณผ ๊ฐ™์€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์นด๋ฉ”๋ผ์— ๋” ๋งŽ์€ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค(FPGA room, on-board memory)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ๋Š” GigE Vision์— UDP๋ฅผ ์„ ํƒํ•จ์œผ๋กœ์จ ์ด๋”๋„ท ์นด๋ฉ”๋ผ ๊ฐœ๋ฐœ์— ์œ ์—ฐ์„ฑ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

UDP๋ฅผ ์„ ํƒํ–ˆ์ง€๋งŒ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ์™€ ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹ ๋ขฐ์„ฑ์„ ์™„์ „ํžˆ ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GigE Vision ํ‘œ์ค€์—๋Š” TCP์™€ ์œ ์‚ฌํ•œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ์„ ํƒ์  ๊ธฐ๋Šฅ์€ ๊ฐ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ํ—ค๋”์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. GigE Vision ํ‘œ์ค€์—๋Š” ์‹œํ€€์Šค ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ GVSP ํ—ค๋”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ํ”„๋ ˆ์ž„ ํŒจํ‚ท์ด ์ˆœ์„œ์—†์ด ์ „์†ก๋˜์–ด๋„ ์ „์†ก ํ›„ ์žฌ ์ •๋ ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GVSP ํ—ค๋”๋Š” ๋˜ํ•œ ํŒจํ‚ท์ด ๋“œ๋ž๋œ(dropped) ๊ฒฝ์šฐ ํŒจํ‚ท ์žฌ์ „์†ก์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

GVSP ํŒจํ‚ท ์ •๋ณด
GVSP ํŒจํ‚ท ์ •๋ณด

ํŒจํ‚ท ์žฌ์ „์†ก(Packet retransmission)๊ณผ ํŒจํ‚ท ๋“œ๋ž(Packet drop)

ํ˜„์žฌ ๊ตฌํ˜„๋œ GigE Vision์„ ์œ„ํ•œ UDP๋Š” 1 GigE ๋Œ€์—ญํญ์„ ์—ผ๋‘์— ๋‘๊ณ  ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, UDP์—์„œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์˜ GigE Vision ํ‘œ์ค€์— ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ํ˜ธ์ŠคํŠธ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ CPU ๋ฆฌ์†Œ์Šค ์–‘, ์นด๋ฉ”๋ผ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„์˜ ํ’ˆ์งˆ, ์™ธ๋ถ€ ์ฒ˜๋ฆฌ ์‹œ ์นด๋ฉ”๋ผ์˜ ํŽŒ์›จ์–ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฒฌ๊ณ (robust)ํ•œ ์ง€์— ์˜ํ•ด ์ œํ•œ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŽ์€ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ์—์„œ GigE Vision์—์„œ ํŒจํ‚ท ์žฌ์ „์†ก์€ ๋ˆ„๋ฝ๋œ ํŒจํ‚ท(missing packet)์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„(filter driver)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํ˜ธ์ŠคํŠธ PC์˜ ํŠน์ˆ˜ ์†Œํ”„ํŠธ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์ด PC์— ์˜ํ•ด ๊ฐ์ง€๋˜๋ฉด ์นด๋ฉ”๋ผ์— ์žฌ์ „์†ก ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์นด๋ฉ”๋ผ๋Š” ์นด๋ฉ”๋ผ์˜ ํŽŒ์›จ์–ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŒจํ‚ท์„ ๊ตฌ๋ฌธ ๋ถ„์„(parse) ํ•ด์•ผ ํ•˜๋ฉฐ, ์นด๋ฉ”๋ผ์˜ ์ด๋ฏธ์ง€ ๋ฒ„ํผ์—์„œ ํŒจํ‚ท์„ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์นด๋ฉ”๋ผ๋Š” ์ •์ƒ์ ์ธ ์ „์†ก์„ ์ž„์‹œ ์ค‘์ง€ํ•˜๊ณ  ์š”์ฒญ๋œ ํŒจํ‚ท์„ ์žฌ์ „์†กํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„ ์ „์ฒด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์ด ์žˆ๋Š” ๊ฒฝ์šฐ PC์™€ ์นด๋ฉ”๋ผ์— ๋ถ€๋‹ด์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 1 Gigabit ์†๋„์—์„œ๋Š” ์†์‹ค๋œ ํŒจํ‚ท์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์žฌ์ „์†กํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ CPU ๋ฐ ์นด๋ฉ”๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์ˆœ์ฐจ์  ํŒจํ‚ท ๋ฐ ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ˜ธ์ŠคํŠธ PC์˜ ์˜ˆ
๋น„์ˆœ์ฐจ์  ํŒจํ‚ท ๋ฐ ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ˜ธ์ŠคํŠธ PC์˜ ์˜ˆ

UDP๋Š” ๋‚ด์žฅ๋œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ „์†ก์€ ์นด๋ฉ”๋ผ ์ œ์กฐ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„์— ์˜ํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ๋‹ˆ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋Š” ๊ฐ ํŒจํ‚ท์˜ GVSP ํ—ค๋”๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ, ํ•˜๋‚˜์˜ PC์—์„œ ์—ฐ๊ฒฐํ•˜๋Š” ์นด๋ฉ”๋ผ์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๊ทธ๋ฆฌ๊ณ  ์ œ์กฐ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ท ์žฌ์ „์†ก์ด ๋ฐœ์ƒํ•˜์—ฌ CPU๊ฐ€ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์„ ๋•Œ ํŒจํ‚ท์„ ์‚ญ์ œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ PC์™€ ์นด๋ฉ”๋ผ๊ฐ€ ์ „์†ก์— ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ด๋ฏธ์ง€๊ฐ€ ์†์ƒ๋˜๊ฑฐ๋‚˜ ๋ถ€๋ถ„์ ์œผ๋กœ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ „์†ก ๋Œ€์—ญํญ์ด ๋” ๋งŽ์€ ํŒจํ‚ท์„ ์‚ญ์ œํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ปค์ง€๋ฉด์„œ ์นด๋ฉ”๋ผ์—์„œ ํŒจํ‚ท์„ ๊ณ„์† ์š”์ฒญํ•˜๊ฒŒ ๋˜๊ณ , CPU ํ™œ์šฉ๋„๊ฐ€ ๊ณ„์† ๋†’์•„์ง€๋Š” ์•…์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. GigE Vision ํ‘œ์ค€์€ UDP ์œ„์— ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ, ํ˜„์žฌ UDP์™€ ํŒจํ‚ท ์žฌ์ „์†ก์„ ์‚ฌ์šฉํ•˜๋ฉด CPU ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ์†์ƒ๋œ ์ด๋ฏธ์ง€์— ๋„๋ฏธ๋…ธ ํšจ๊ณผ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UDP ์ „์†ก ์‹œ ์†์ƒ๋œ ์ด๋ฏธ์ง€์˜ ์˜ˆ
UDP ์ „์†ก ์‹œ ์†์ƒ๋œ ์ด๋ฏธ์ง€์˜ ์˜ˆ

10 GigE๋ฅผ ์œ„ํ•œ TCP GigE Vision ์นด๋ฉ”๋ผ

์ง€๊ธˆ๊นŒ์ง€ UDP์—์„œ์˜ GigE Vision๋งŒ ์„ค๋ช…ํ–ˆ๋Š”๋ฐ์š”. TCP์—์„œ GigE Vision ์นด๋ฉ”๋ผ๋Š” ์—†๋Š” ๊ฒƒ์ผ๊นŒ์š”? ์‚ฌ์‹ค ์ง€๊ธˆ๊นŒ์ง€ TCP ํ”„๋กœํ† ์ฝœ์˜ GigE Vision ์นด๋ฉ”๋ผ๋Š” ๋ณธ ์ ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๊ทผ LUCID์—์„œ TCP 10 GigE ์นด๋ฉ”๋ผ๊ฐ€ ์ƒˆ๋กœ ์ถœ์‹œ๋˜์—ˆ๋”๊ตฐ์š”. ์ œํ’ˆ์„ ํ™๋ณดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , UDP์™€ ๋น„๊ตํ•˜์—ฌ TCP์—์„œ ์–ด๋–ค ํŠน์ง•์ด ์žˆ๋Š”์ง€ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

LUCID์—์„œ ์ถœ์‹œํ•œ Atlas10 10GigE ์นด๋ฉ”๋ผ๋Š” UDP์™€ TCP ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(SDK์—์„œ ์ „์†ก ๋ฐฉ์‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
ํ•ด๋‹น ์นด๋ฉ”๋ผ๋Š” Full Frame Rate๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ „์ฒด ํ”„๋ ˆ์ž„์—์„œ ๋ชจ๋“  ํŒจํ‚ท ์ „์†ก์— ๋Œ€ํ•œ ๋ณด์žฅ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

TCP๋Š” UDP์™€ ๋‹ฌ๋ฆฌ ํ˜ธ์ŠคํŠธ PC์— ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, NIC์™€ ์นด๋ฉ”๋ผ์˜ FPGA๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์—์„œ ์ถ”๊ฐ€ ์‹ ๋ขฐ์„ฑ ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ํŒจํ‚ท ์žฌ์ „์†ก์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ํ† ๋Œ€๋Š” TCP์˜ three-way handshake๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. three-way handshake์— ๋Œ€ํ•œ ๋™์ž‘์€ ์•„๋ž˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

three-way handshake ๋™์ž‘
three-way handshake ๋™์ž‘

์นด๋ฉ”๋ผ์™€ ํ˜ธ์ŠคํŠธ PC๊ฐ„์— TCP ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๋ฉด, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ณด๋‹ค ์•ˆ์ •์ ์ธ ํŒจํ‚ท ์ „๋‹ฌ, ๋†’์€ ํ”„๋ ˆ์ž„ ์†๋„ ๋ฐ ์ง€์†์ ์œผ๋กœ ๋‚ฎ์€ CPU ์‚ฌ์šฉ๋ฅ ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์นด๋ฉ”๋ผ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

https://thinklucid.com/atlas10-10gige-poe-pregius-s/

 

Atlas10, 10GigE + PoE Featuring 4th Gen Pregius S Sensors | LUCID Vision Labs

TCP’s flow control, packet retransmission, and LRO/RSC technologies provides high bandwidth image transfers that guarantee full frame delivery, all while operating at the hardware level (FPGA/NIC). LUCID supports both UDP (GigE Vision) and TCP protocols

thinklucid.com

์ž๋ฃŒ ์ถœ์ฒ˜:

LUCID Vision Labs : ๋งํฌ(https://thinklucid.com/)

๋ฐ˜์‘ํ˜•